ASP.Net Webservice получает неопределенное количество пар ключ-значение - PullRequest
1 голос
/ 13 января 2012

Я работал с некоторыми поставщиками обработки форм, и у них, похоже, есть общий приемник для данных пары ключ-значение. Я пытаюсь сделать это, но каждая структура данных, которую я пытался использовать, реализует интерфейс и поэтому не может сериализовать контейнер для использования в веб-методе.

Я даже пытался использовать базовый тип данных 'object' - безуспешно

[WebMethod] 
        public void processResponse( object lead ){
            Dictionary<string, string> DList = (Dictionary<string,string>) lead;

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

Ответы [ 2 ]

0 голосов
/ 23 января 2012

В итоге я добавил общий обработчик. Я скопировал параметр QueryString в словарь и поработал со значениями оттуда. Он устанавливает центральную точку сбора данных, и я смог применить свою бизнес-логику оттуда - кажется, соответствует цели того, что я хотел.

0 голосов
/ 14 января 2012

Переключиться на WCF, который по умолчанию использует класс DataContractSerializer, способный к сериализации пар ключ-значение, таких как Dictionary<T,K>.

Базовая структура вашего сервиса будет точно такой же, и с помощью BasicHttpBinding у вас будет практически одинаковый протокол связи на основе Http и Soap.Потратьте 30 минут на урок WCF, и вы вряд ли захотите вернуться к старым * .asmxes.

...