我有像下面这样的课程
public abstract class MainDTO
{
public string Id;
public string CreatedBy;
}
public class SubDTO : MainDTO
{
public string SubKey;
}
public class LockDTO : SubDTO
{
public string LockKey;
}
我需要创建一个返回List<MainDTO>
的函数。我的xml文件如下所示。
<MainDTOList>
<SubDTO>
<Id>ABC</Id>
<CreatedBy>XXX</CreatedBy>
<SubKey>123045</SubKey>
</SubDTO>
<LockDTO>
<Id>GERTE</Id>
<CreatedBy>VGINA</CreatedBy>
<SubKey>123045</SubKey>
<LockKey>L123045</SubKey>
</LockDTO>
</MainDTOList>
通过使用XmlSerializer,我获得了读取XML文件并在所有对象的类型都不相同时返回对象集合的代码。但在我的例子中,它们是不同的。你能告诉我怎么做吗?
发布于 2019-05-14 05:50:38
我能想到的实现上述目标的简单方法是查看XML结构,我还没有使用过这一点,所以请原谅我的小假设错误
这个想法是创建一个看起来像XML的类,如果值只出现一次,则使用一个看起来像这样的类(作为示例)。
[XmlRoot("MainDTOList")]
public class SomeClass
{
[XmlElement("SubDTO")]
public SubDTO SubDTO{get;set;}
[XmlElement("SubDTO")]
public LockDTO LockDTO{get;set;}
....
}
然后执行一个简单的XmlSerializer. Deserialize来反序列化特定的XML
https://stackoverflow.com/questions/56119911
复制相似问题