Ошибка: «Десериализатор не знает ни одного типа, который соответствует этому контракту»? - PullRequest
0 голосов
/ 25 сентября 2010

У меня есть класс Foo, помеченный [Serializable] и реализующий ISerializable.Я пытаюсь сериализовать его через DataContractSerializer.В GetObjectData я делаю это:

info.AddValue("Test", new[] { 1,2,3});

Сбой:

Элемент ': Test' содержит данные контракта данных http://schemas.microsoft.com/2003/10/Serialization/Arrays:ArrayOfint'.Десериализатор не знает ни одного типа, который соответствует этому контракту.Добавьте тип, соответствующий ArrayOfint, в список известных типов, например, с помощью атрибута KnownTypeAttribute или добавив его в список известных типов, передаваемых в DataContractSerializer.

Я попытался передатьknownTypes аргумент к конструктору DataContractSerializer - не помогло.

1 Ответ

0 голосов
/ 25 сентября 2010

Передача аргумента knownTypes в конструктор DataContractSerializer не поможет. Вместо этого добавьте [KnownType(typeof(int[]))] к самому классу Foo.

...