Ошибка: "Десериализатор не знает ни одного типа, который соответствует этому контракту"?
У меня есть помеченный класс 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[]))]
к самому классу Фу.