WCF, контейнеры в DataContract - PullRequest
1 голос
/ 01 декабря 2009

Мне нужно передать некоторый контейнер объектов в вызов WCF

[DataContract]
class Foo
{
 // other fields omited

 [DataMember]
 public List<Foo> MyList;
}

Это нормально для сериализации? Если нет, какие у меня варианты?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2009

Это нормально, но результирующий тип будет массивом, а не списком. Я неравнодушен к использованию массива в контракте просто для того, чтобы убедиться, что я не пытаюсь использовать его в качестве списка в другом месте.

0 голосов
/ 15 августа 2016

Он будет успешно сериализован, даже если вы не примените DataContract. Единственное условие - все используемые в сериализации типы имеют конструктор без параметров (даже закрытый), например:

List<T> - already has it.
Foo - have it by default.
...