[英]C# Serialize Object instance to XML
我在序列化对象实例时遇到了一些问题,并让一些伪代码说明了自己:
List<A> ListOfA = new List<A>();
[Serializable]
public class A
{
public Object Instance;
...
}
[Serializable]
public class B
{
public String SomeAttribute = "example";
}
// This will be called:
void Serialize()
{
var a = new A();
a.Instance = new B();
ListOfA.Add(a);
// a.Instance = new String("test"); works but List<String>, B, ... throws Invalid Operation Exception when serializing:
using (TextWriter textWriter = new StreamWriter(filePath, false))
{
var xmlSerializer = new XmlSerializer(ListOfA.GetType());
xmlSerializer.Serialize(textWriter, ListOfA );
}
}
有人对此有解决方案吗?
我试图使用XmlInclude
没有任何结果。
甚至可以在不知道对象类型的情况下序列化对象?
尝试:
[XmlInclude(typeof(B))]
public class A {
public Object Instance;
}
顺便说一句。 [Serializable]对于xml序列化没有用。
感谢您的快速响应,但是我确实通过为XmlSerializer提供第二个参数找到了解决问题的方法:
var xmlSerializer = new XmlSerializer(ListOfA.GetType(), new Type[] { typeof(B) });
这样,我不必将[XmlInclude(typeof(B))]添加到类A。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.