XmlSerializer的根派生类的元素名称

时间:2018-07-18 22:07:20

标签: c# xml-serialization xmlserializer

我正在尝试以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的实例,但是我不确定以后是否可以反序列化其输出。

注意:我正在流式传输,例如我正在写AB的新实例,只要它们进入现有的XmlWriter

0 个答案:

没有答案