【发布时间】:2019-05-13 21:09:50
【问题描述】:
我有下面这样的课程
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 文件并在所有对象都属于同一类型时返回对象集合的代码。但就我而言,它们是不同的。请告诉我怎么做。
【问题讨论】:
-
几乎都一样...看看这个XmlSerializer的构造函数:XmlSerializer(Type, Type[])
-
哪个序列化程序?
-
如果我的 xml 文件只有所有 SubDTO,那么我将使用 XmlSerializer reader = new XmlSerializer(typeof(List
), new XmlRootAttribute("MainDTOList"));但这里使用的是 SubDTO 和 LockDTO .. 所以我必须在 new XmlSerializer(typeof(List 中使用)