C# xmlAny元素中已存在的xml元素数组的序列化 阿米拉 10美元 印度 醋栗 充足的 1.11 0.02

C# xmlAny元素中已存在的xml元素数组的序列化 阿米拉 10美元 印度 醋栗 充足的 1.11 0.02,c#,.net,xml-serialization,C#,.net,Xml Serialization,在反序列化上述XML结构时,我使用 Xml XmlElement(“水果列表”)] 公共列表端口{get;set;} 在水果课上,我有如下几点: XmlElement("FruitsList")] public List<Fruits> FruitsImport { get; set; } [xmlanyement] 公共列表元素{get;set;} [XmlElement(“来源”)] 公共列表{get;set;} [XmlElement(“其他信息”)] 公共列表OtherI

在反序列化上述XML结构时,我使用

Xml

XmlElement(“水果列表”)]
公共列表端口{get;set;}
在水果课上,我有如下几点:

XmlElement("FruitsList")]
public List<Fruits> FruitsImport { get; set; }
[xmlanyement]
公共列表元素{get;set;}
[XmlElement(“来源”)]
公共列表{get;set;}
[XmlElement(“其他信息”)]
公共列表OtherInfo{get;set;}
FruitElement
检索
FruitName
FruitPrice
FruitOrigin
仅检索国家
Info
OtherInfo
单独检索
FiberPercentage


关于如何获取
标记下的所有信息,您有什么想法吗?

因为在
标记中都嵌套了元素,所以在执行反序列化时还需要为它们定义一个类

    [XmlAnyElement]
    public List<XmlElement> FruitElements { get; set; }

    [XmlElement("Origin")]
    public List<XmlElement> FruitOrigin { get; set; }

    [XmlElement("OtherInfo")]
    public List<XmlElement> OtherInfo { get; set; }
[XmlElement(“原点”)]
公共列表{get;set;}
您可以用与水果类相同的方式定义origin类

(原始类的骨架如下所示:

[XmlElement("Origin")]
public List<Origins> FruitOrigin { get; set; }
[可序列化]
公共阶级起源
{
[xmlanyement]
公共列表源元素{get;set;}
}

)

最好的方法是为XML编写XSD模式,并使用从XSD模式生成类,这样您可以验证XML和类始终与XSD匹配,并且不会出现序列化/反序列化问题

    [XmlAnyElement]
    public List<XmlElement> FruitElements { get; set; }

    [XmlElement("Origin")]
    public List<XmlElement> FruitOrigin { get; set; }

    [XmlElement("OtherInfo")]
    public List<XmlElement> OtherInfo { get; set; }
您可以创建如下所示的批处理文件,以从xsd架构生成类:

[Serializable]
public class Origin
{
    [XmlAnyElement]
    public List<XmlElement> OriginElements { get; set; }
}
您可以在上面的XSD.exe链接中看到更多使用示例。
它将生成分部类,因此如果需要,您可以轻松地对其进行进一步扩展。

谢谢Dude。。正是我要找的@现在,我很高兴能帮助你,这是我的荣幸
del Configuration.AutoGenerated.cs
"%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\bin\xsd" Test.Configuration.xsd /c /n:Test.Configuration 

rename Test_Configuration.cs Configuration.AutoGenerated.cs
pause