C# Model 与 XML 之间转换 特性的使用

.NET中使用System.Xml.Serialization命名空间下的XmlSerializer类进行对象的XML序列化和反序列化。通过自定义特性如XmlAttribute、XmlElement、XmlRoot等,可以指定类成员如何映射为XML结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   .NET 支持对象xml序列化和反序列化的类库主要位于命名空间System.Xml.Serialization中。

   1.  XmlSerializer 类

   该类用一种高度松散耦合的方式提供串行化服务。你的类不需要继承特别的基类,而且它们也不需要实现特别的接口。相反,你只需在你的类或者这些类的公共域以及读/写属性里加上自定义的特性。XmlSerializer通过反射机制读取这些特性并用它们将你的类和类成员映射到xml元素和属性。

   2. XmlAttributeAttribute 类

   指定类的公共域或读/写属性对应xml文件的Attribute。

   例:[XmlAttribute(“type”)] or [XmlAttribute(AttributeName=”type”)]

   3. XmlElementAttribute类

   指定类的公共域或读/写属性对应xml文件的Element。

   例:[XmlElement(“Maufacturer”)] or [XmlElement(ElementName=”Manufacturer”)]

   4. XmlRootAttribute类

   Xml序列化时,由该特性指定的元素将被序列化成xml的根元素。

   例:[XmlRoot(“RootElement”)] or [XmlRoot(ElementName = “RootElements”)]

   5. XmlTextAttribute 类

   Xml序列化时,由该特性指定的元素值将被序列化成xml元素的值。一个类只允许拥有一个该特性类的实例,因为xml元素只能有一个值。

   6. XmlIgnoreAttribute类

   Xml序列化时不会序列化该特性指定的元素。

 

实例1:

[XmlRoot("主节点")]

Class 类名

 

实例2:

 [XmlAttribute(AttributeName = "父节点 内字段名")]

public string 字段名{get;set;}

 

实例3:

   [XmlElement(ElementName="worker")]

        public Worker[] Workers

        {

            get { return m_workers; }

            set { m_workers = value; }

        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值