为了账号安全,请及时绑定邮箱和手机立即绑定

将具有相同名称的不同xml元素反序列化为不同的C#类

将具有相同名称的不同xml元素反序列化为不同的C#类

C#
江户川乱折腾 2022-11-21 16:53:17
我有一些包含两个general元素的 XML,每个元素包含不同的信息。例如:<overview>    <general> <!-- General 01 -->        <datetime></datetime>        <location></location>    </general>    <instance>        <general> <!-- General 02 -->            <instanceid></instanceid>            <instancetype></instancetype>        </general>    </instance>    <instance>        ....    </instance></overview>通过Xml2CSharp.com运行此 XML 后,两个不同general元素中的信息将合并为一个类,例如:[XmlRoot(ElementName="general")]public class General {    [XmlElement(ElementName="datetime")]    public string Datetime { get; set; }    [XmlElement(ElementName="location")]    public string Location { get; set; }    [XmlElement(ElementName="instanceid")]    public string Instanceid { get; set; }    [XmlElement(ElementName="instancetype")]    public string Instancetype { get; set; }}是否可以为这些general元素创建两个不同的类(因为它们各自包含不同的信息),并指定应该使用哪个?例如:[XmlRoot(ElementName="overview/general")]public class OverviewGeneral {    [XmlElement(ElementName="datetime")]    public string Datetime { get; set; }    [XmlElement(ElementName="location")]    public string Location { get; set; }}[XmlRoot(ElementName="instance/general")]public class InstanceGeneral {    [XmlElement(ElementName="instanceid")]    public string Instanceid { get; set; }    [XmlElement(ElementName="instancetype")]    public string Instancetype { get; set; }}
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您已关闭以实现结果,您需要为每个属性分配适当的类类型,例如


[XmlRoot(ElementName = "instance")]

public class Instance

{

    [XmlElement(ElementName = "general")]

    public InstanceGeneral General { get; set; }  //<= InstanceGeneral  Use Here

}


[XmlRoot(ElementName = "overview")]

public class Overview

{

    [XmlElement(ElementName = "general")]

    public OverviewGeneral General { get; set; }  //<= OverviewGeneral Use Here

    [XmlElement(ElementName = "instance")]

    public Instance Instance { get; set; }

}


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信