使用混合类型的对象从XML文件生成C#类

时间:2019-05-13 21:09:50

标签: c# xml xsd

我有类似以下的课程

MongoDB 3.2

我需要创建一个返回public abstract class MainDTO { public string Id; public string CreatedBy; } public class SubDTO : MainDTO { public string SubKey; } public class LockDTO : SubDTO { public string LockKey; } 的函数。我的xml文件如下所示。

List<MainDTO>

通过使用XmlSerializer,当所有对象都不属于同一类型时,我获得了读取XML文件并返回对象集合的代码。但就我而言,它们是不同的。你能让我知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

我认为可以实现上述目标的简单方法是查看您的XML结构,一点儿都没有使用它,所以请原谅我的小假设错误

想法是创建一个看起来像您的XML的类,如果值只出现一次,则使用一个看起来像这样的类(作为示例)

[XmlRoot("MainDTOList")]
public class SomeClass
{
    [XmlElement("SubDTO")]
    public SubDTO SubDTO{get;set;}

    [XmlElement("SubDTO")]
    public LockDTO LockDTO{get;set;}

    ....

}

然后执行简单的XmlSerializer. Deserialize来反序列化您的特定XML