有什么方法可以指定 xsi:type= " " 中使用的 XML 字符串?



我有一个使用XMLSerialiser序列化为XML的类层次结构。为此,我使用[XmlInclude]声明所有具体类型。例如

 [XmlInclude(typeof(Derived))]
 public class Base
 {
 }
 public class Derived : Base
 {
 }

Derived的一个实例被序列化为:

<Base xsi:type="Derived" />

有没有办法将类型文本更改为类名以外的内容?例如:

<Base xsi:type="Fred" />

我认为您可以按如下方式执行:

[XmlType(TypeName = "Fred")]
public class Derived : Base
{
}

使用XmlType属性:

[XmlInclude(typeof(Derived))]
public class Base
{
}
[XmlType("Fred")]
public class Derived : Base
{
}

这将在使用Base序列化程序序列化Derived对象时为您提供所需的xsi:type。我的测试程序输出:

<Base xsi:type="Fred"/>

相关内容

  • 没有找到相关文章

最新更新