Отправка Hashtable в веб-сервис - PullRequest
       28

Отправка Hashtable в веб-сервис

1 голос
/ 12 октября 2009

Я пытаюсь отправить Список элементов с общими ключами и типами значений на веб-сервис asp.net. Как я могу это сделать? Я попробовал это с List<Dictionary<String, String>>, но это не работает. Я не получаю исключения, но когда я ломаюсь в веб-сервисе, моя коллекция становится нулевой. Данные могут выглядеть так: {"Data":{"fieldtype":"integer","isrequired":true,"isrequirederror":"Invalid Data"}}. Но, как я уже сказал, ключи являются общими, иногда есть больше свойств, иногда нет.

Большое спасибо

Это сообщение не помогло, кстати: Как отправить хеш-таблицу на веб-службу asmx?

Ответы [ 3 ]

1 голос
/ 12 октября 2009

Классы, которые реализуют IDictionary, нельзя сериализовать в XML, это ограничение класса XmlSerializer. Обычный обходной путь для того, чтобы реализовать IXmlSerializable для обеспечения настраиваемой логики сериализации, как показано здесь . Другой вариант - преобразовать ваш словарь в список пар ключ / значение

1 голос
/ 12 октября 2009

У вас будут трудные времена с SOA и WCF, в частности, если вы захотите внедрить в свой сервис какие-либо обобщения - начиная от проблем сериализации / десериализации и заканчивая проблемами совместимости.

Не используйте общие параметры. Hashtable (или Dictionary) имеет смысл только при использовании в процессе из-за производительности операций чтения / записи. Если вы хотите передать что-то в таком формате по проводам, используйте что-то вроде следующей структуры: Список пар (строка, строка).

0 голосов
/ 12 октября 2009
{"Data":
 {"fieldtype":"integer",
  "isrequired":true,
  "isrequirederror":"Invalid Data"
 }
}

: это не List<Dictionary<String, String>>
это Dictionary<string, Dictionary<String, String>>
может ли это помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...