首页 > 解决方案 > 如何在 XML 序列化中仅排除子类的名称,而不是字段?

问题描述

我有一些类,它们都需要结果代码和结果文本。
由于两者总是需要在一起,我决定将它们变成一个子类,以供其他类使用。

问题:

如何告诉 XML 序列化程序包含字段,但不包含该子类的类名?

XML 序列化程序的期望结果:

<OtherClass>...<RT>...</RT><RC>...</RC>...

尝试1:

    public class Result
    {
        ...
        [XmlElement(ElementName = "RT")]
        public string Result_Text { get; set;}
        [XmlElement(ElementName = "RC")]
        public int    Result_Code { get; set;}
    }

其他对象:

public class Otherclass{
  ...
  public Result result;
  ...

XML序列化结果:

<OtherClass>...<Result><RT>...</RT><RC>...</RC></Result>...

尝试2:

Result还是一样。

其他对象:

public class Otherclass{
  ...
  [XmlIgnore]
  public Result result;
  ...

XML序列化结果:

<OtherClass>...<!-- Result is not present, neither its fields -->...

尝试 3:

    [XmlIgnore]
    public class Result
    {
        ...
        [XmlElement(ElementName = "RT")]
        public string Result_Text { get; set;}
        [XmlElement(ElementName = "RC")]
        public int    Result_Code { get; set;}
    }

这甚至不编译。

所以我的问题是:是否可以在不提及类名本身的情况下包含子类的字段?

标签: c#xmlxml-serialization

解决方案


推荐阅读