Как использовать коллекции, когда определяют DataContract? - PullRequest
0 голосов
/ 17 февраля 2011

Я хочу «отправить» коллекцию, содержащую числа (двойные). Я пытаюсь добавить массив в мой DataContract, но он терпит неудачу (исключение .. когда я замечаю тип массива, он отлично работает).

Как я могу это сделать?

Спасибо за любую помощь.

1 Ответ

1 голос
/ 17 февраля 2011

Сериализация коллекции происходит автоматически только тогда, когда коллекция в контракте является конкретной коллекцией (то есть не интерфейсом) и сериализуется (аннотируется атрибутом Serializable). В этом случае WCF может автоматически сериализовать коллекцию как массив типа коллекции, если коллекция содержит операцию Add. Это верно как для встроенных коллекций .NET, так и для любых ваших собственных пользовательских коллекций, которые реализуют интерфейс IEnumerable или IEnumerable; до тех пор, пока они сериализуемы и имеют операцию добавления, они могут быть автоматически сериализованы в массивы.

Если ваша коллекция не соответствует этим ограничениям, укажите CollectionDataContractAttribute.

[CollectionDataContract(Name = "MyCollectionOf{0}")]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...