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

Другие вопросы по тегам