У меня довольно сложная объектная модель, которую я пытаюсь сериализовать с использованием WCF. Я столкнулся с проблемой, когда я могу создать новый экземпляр на сервере и вернуть его клиенту, а затем попытаться передать этот же объект обратно или даже сериализовать его с помощью DataContractSerializer, который выдает исключение.
Метод теста Server.Service.Test.SerializationTest.TestFilingSerialization вызвал исключение: System.Runtime.Serialization.SerializationException: произошла ошибка десериализации объекта типа MyNameSpace.MyObject. Не задан метод для свойства '' в типе ''
Это не дает мне никакой информации о сеттере, который я, возможно, пропускаю, хотя я пытался просмотреть иерархию наследования для пропущенных сеттеров, я не могу пройти мимо этого. MyObject - это тип свойства объекта, который я пытаюсь сериализовать, вот забавная часть. В установщике этого свойства у меня есть код, который выглядит следующим образом:
set
{
_backingField = value;
_backingField.IsDirtyManager.SetIsDirty();
NotifyPropertyChanged("MyProperty");
if (!ContainsType(_backingField.GetType()))
{
Aggregates.Add(_backingField);
}
}
Если я закомментирую Aggregates. При добавлении он переходит к следующему свойству и выдает там то же исключение, кикер, он перебирает другие свойства с тем же кодом, прежде чем попадает в этот и умирает, поэтому я не не знаю, в чем может быть проблема.
У любого есть опыт, где настоящая ошибка, потому что имя свойства и тип не заполнены в исключении, поэтому кажется, что ошибка должна быть чем-то другим. Если я просто создаю новый экземпляр на клиенте, я могу десериализовать и сериализовать без проблем, поэтому здесь должно быть что-то, чего мне не хватает. Любые идеи о том, что искать?
EDIT
Я буквально делаю только это:
- Создать экземпляр
- Serialize
- De-сериализация
- Re-сериализация
- умри здесь