Custom Collection null при прохождении через службу WCF
У нас есть несколько пользовательских коллекций, таких как эта:
[Serializable]
public class OccupationCollection : Collection<Occupation>
{
}
Мы используем их в следующих объектах:
private OccupationCollection _occupations;
public OccupationCollection CurrentOccupations
{
get
{
if (this._occupations == null)
return new OccupationCollection();
else
return _occupations;
}
}
Теперь мы делаем вызов службе WCF, передавая объекты, которые содержат списки такого типа. Списки всегда оказываются нулевыми в сервисе.
Я уверен, что это связано с сериализацией или чем-то в этом роде.
Какое самое простое решение, которое потребовало бы минимальных изменений существующих объектов, чтобы заставить это работать?
1 ответ
Вы размещали свой сервис через HTTP? Если да, можете ли вы использовать fiddler, чтобы проверить HTTP-трафик и убедиться, что сериализированная версия параметра передается по сети? Если да, может быть несоответствие параметров в контракте между сервером и клиентом. Также объект, содержащий OccupationCollection, украшен атрибутом Serializable/DataContract? Если у вас есть атрибут DataContract, убедитесь, что свойства, которые необходимо сериализовать, помечены атрибутом Datamember.
Больше подробностей здесь.. http://blog.functionalfun.net/2009/09/if-your-wcf-service-is-unexpectedly.html