我正在尝试以XML格式编写(并稍后阅读)日志。以我的情况登录是一个事件流,每个事件都有一个带有XML序列化兼容声明的对应类。一个简单的情况是:
public abstract class Base {
[XmlAttribute]
public string Value { get; set; }
}
public class A: Base{}
public class B: Base{}
创建XmlSerializer时,我将typeof(A), typeof(B)
作为extraTypes
参数。会产生
<Base xsi:type="A" Value="42"/>
<Base xsi:type="B" Value="42"/>
我想看
<A Value="42"/>
<B Value="42"/>
或至少
<A xsi:type="A" Value="42"/>
代替可读性。
是否可以不手动生成序列化代码和嵌套?
我可以为每个类创建XmlSerializer的实例,但是我不确定以后是否可以反序列化其输出。
注意:我正在流式传输,例如我正在写A
或B
的新实例,只要它们进入现有的XmlWriter
。