Почему я не могу сериализовать объект, используя DataContractSerializer? - PullRequest
3 голосов
/ 05 мая 2009

Я пытаюсь сериализовать тип, используя DataContractSerializer, и получаю исключение ниже. Это не для службы SOA, но я все же хотел бы использовать DataContractSerializer, если это возможно. Я использую .Net 3.5 SP1.

Тип '+ System.DelegateSerializationHolder DelegateEntry' с названием контракта данных «DelegateSerializationHolder.DelegateEntry: * ** 1004 1005 * не ожидается Добавить любые типы не статически известен к списку известных типы - например, с помощью Атрибут KnownTypeAttribute или добавив их в список известных типов передано в DataContractSerializer.

Ответы [ 2 ]

4 голосов
/ 05 мая 2009

Можете ли вы опубликовать определение класса?

Похоже, вы пытаетесь сериализовать класс, который имеет поле типа делегата, что, я уверен, заставит сериализатор подавиться.

Украсили ли вы свой класс атрибутами DataContract / DataMember? В 3.5 SP1 существует поведение по умолчанию для сериализатора, который сериализует все общедоступные в классе по умолчанию, если он не помечен этими атрибутами. Возможно, вам следует явно пометить каждое свойство, которое необходимо сериализовать, с атрибутом DataMember и не указывать те, которые не должны быть.

Кроме этого, нам нужно узнать определение вашего класса для получения дополнительной помощи.

1 голос
/ 04 сентября 2011

Существует 3 возможных подхода, чтобы избежать ошибки, описанной в http://blogs.microsoft.co.il/blogs/oshvartz/archive/2009/10/10/passing-event-handlers-over-wcf.aspx

...