繁体   English   中英

.NET XML序列化器-数组自定义属性

[英].NET XML Serializer - Array Custom Attributes

我对如何实现这样的XML结构感到非常困惑:

<sizes type=”1”>
    <size status=”1”>L</size>
    <size status=”1”>XL</size>
   <size status=”0”>XXL</size>
<sizes>

我能够创建这样的结构:

<sizes>
    <size>L</size>
    <size>XL</size>
   <size>XXL</size>
<sizes>

具有XmlArrayXmlArrayItem属性。

[XmlArray(ElementName = "sizes")]
[XmlArrayItem(ElementName = "size")]

但是我无法做的是添加这些自定义属性。 我该怎么做? 我是否需要创建一个新对象来保存这些值并为其设置自定义属性?

您应该将它们定义为属性。 这应该工作:

using System.Collections.Generic;
using System.Xml.Serialization;

public class sizes
{
    [XmlAttribute("type")]
    public string type { get; set; }

    [XmlElement("size")]
    public List<size> sizeList { get; set; }
}

public class size
{
    [XmlAttribute("status")]
    public string status { get; set; }
}

以及反序列化的代码:

string xml = File.ReadAllText("XMLFile1.xml");
XmlSerializer ser = new XmlSerializer(typeof(sizes));
var sizes = ser.Deserialize(new StringReader(xml));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM