XML сериализация и десериализация общего списка в C # .net - PullRequest
0 голосов
/ 17 июня 2011

Я готовлю структуру кода, подобную следующей:

  1. Служба WCF - здесь можно реализовать всю бизнес-логику.Все сервисные методы могут принимать входные аргументы в виде строки (данные XML) и могут возвращать строку (данные XML) или int.

  2. Клиентский веб-сайт - ASP> NET веб-сайт с сущностным уровнем и бизнес-логикойслой (слой BAL).

Поток такой:

Клиентский сайт ---> BAL -> (служба WCF ----> Уровень DAL ----> База данных)Уровень BAL использует службу wcf

Для этой цели на уровне BAL я хочу создать список класса сущностей и выполнить сериализацию XML (список в формате XML) и передать его в методы сервиса WCF.Десериализация метода службы WCF (XML в список).

Как мне это сделать в ASP.NET и WCF?

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Ты этого не делаешь. Похоже, это распространенное недоразумение для новых пользователей WCF.

Вы определяете DataContracts , который содержит ваши данные, передает их в службу WCF, и она заботится о сериализации / десериализации их.

Вы не сериализуете их в XML перед передачей через службу.

0 голосов
/ 17 июня 2011

WCF автоматически сериализует список для вас, но тип коллекции по умолчанию, к которому он десериализуется на стороне клиента, - это массив.

Вы можете изменить эту коллекцию по умолчанию на список (или связанный список, или что-либо еще доступное), щелкнув правой кнопкой мыши ссылку на сервис в проекте для своего клиентского приложения, выбрав «Настроить ссылку на сервис ...»,и выберите System.Collections.Generic.List из выпадающего меню типа коллекции.

Если вы отправляете список от клиента в службу WCF, достаточно определить параметр метода службы в виде списка (если он содержит простые типы .NET), в противном случае вам нужно определить специальные данныеконтракт согласно другому ответу.

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