Ошибка: "Десериализатор не знает ни одного типа, который соответствует этому контракту"?

У меня есть помеченный класс 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 ответ

Решение

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

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