дано
[Serializable]
public class DOCustomElement1
{
[NonSerialized]
public OracleConnection connection;
public DOCustomElement1()
{
}
}
[Serializable]
public class DOArticleRow1 : DOCustomElement1
{
[XmlElement]
public string article_nr;
public DOArticleRow1()
{ }
}
Пытаюсь сериализовать объект.
DOArticleRow1 arrow = new DOArticleRow1();
arrow.article_nr = "article_nr 2";
XmlWriter writer = new XmlTextWriter(@"c:\temp\1\test.xml", Encoding.UTF8);
XmlSerializer serializer = new XmlSerializer(typeof(DOArticleRow1));
serializer.Serialize(writer, arrow);
writer.Close();
Вылазит ошибка. Ругается что не может сериализовать, так как есть поле с типом OracleConnection.
Почему не работает атрибут [NonSerialized]?
Варианты, при которых все нормально
// это просто так для проверки - работает
[NonSerialized]
public int connection;
// это подходит, но не должно же быть так жестко - управлять сериализацией через доступность полей
[NonSerialized]
protected OracleConnection connection;