У меня есть класс на C #, который я пытаюсь сериализовать с помощью DataContractSerializer. Выглядит это примерно так:
namespace Foo
{
[DataContract(Name = "Bar")]
class Bar
{
class A
{
public A(object a, object b, object c)
{
d = a;
e = b;
f = c;
}
public object d;
public object e;
public object f;
}
[DataMember]
private ArrayList lst = new ArrayList();
...
}
}
Когда я пытаюсь сериализовать этот класс, я получаю сообщение об ошибке:
"System.Runtime.Serialization.SerializationException: тип 'Foo.Bar + A' с именем контракта данных '...' не ожидается. Рассмотрите возможность использования DataContractResolver, если вы используете DataContractSerializer, или добавьте любые типы, статически неизвестные, в список известные типы ".
Я хочу игнорировать A. Это просто определение типа. Ни один из DataMember, который я пытаюсь сериализовать, не относится к типу A.
Изменить: это код сериализации.
public void Serialize()
{
var writer = new FileStream("testoutput.xml", FileMode.Create);
var serializer = new DataContractSerializer(typeof(Bar));
serializer.WriteObject(writer, this);
writer.Close();
}
Исключение выбрасывается в serializer.WriteObject.
Bar
? - person peval27   schedule 08.02.2017