我有一个使用XMLSerialiser
序列化为XML的类层次结构。为此,我使用[XmlInclude]
声明所有具体类型。例如
[XmlInclude(typeof(Derived))]
public class Base
{
}
public class Derived : Base
{
}
Derived的实例被序列化为:
<Base xsi:type="Derived" />
有没有办法将类型文本更改为类名以外的其他内容?例如:
<Base xsi:type="Fred" />
答案 0 :(得分:2)
我认为你这样做:
[XmlType(TypeName = "Fred")]
public class Derived : Base
{
}
答案 1 :(得分:1)
[XmlInclude(typeof(Derived))]
public class Base
{
}
[XmlType("Fred")]
public class Derived : Base
{
}
使用xsi:type
序列化程序序列化Derived
对象时,这将为您提供所需的Base
。我的测试程序输出:
<Base xsi:type="Fred"/>