C#中XmlSerializer类读取xml文件内容并映射到实体类

开发软件的过程中,我们需要一些系统设置参数,通常会设计一个全局类来保存,其中每个属性代表一个参数,那么怎么样将这个参数从XML文件中读出来,并保存到对应的属性中呢,可以利用XmlSerializer的反序列化达到这一目的。
在这里插入图片描述

第一步,创建一个XML文件,其内容如下:
在这里插入图片描述
注意XML文件的根名:ComfigModel

第二步,创建两个实体类,与这个XML文件内容进行映射
在这里插入图片描述
在这里插入图片描述
第三步,设计一个帮助类XmlSerializerHelper,这里我们用了两种方式将XML内容读出来并映射到ConfigModel类中,这个类名和XML根名相同!

在这里插入图片描述
最后一步是使用这个功能,我们用WPF写UI前端,并加上绑定。
在这里插入图片描述
在后端,我们用那个帮助类,将内容保存到两个属性中
在这里插入图片描述
这样就可以看到效果了

在这里插入图片描述
补充一点,如何再把实体的内容保存为XML文件?请看下面
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用 XML 序列化和反序列化来实现将 XML 内容映射C# 多个。 首先,需要在 C# 定义与 XML 内容对应的结构,可以使用 `XmlRoot`、`XmlElement`、`XmlAttribute` 等特性来标记和属性。例如: ```csharp [XmlRoot("person")] public class Person { [XmlElement("name")] public string Name { get; set; } [XmlElement("age")] public int Age { get; set; } [XmlElement("address")] public Address Address { get; set; } } public class Address { [XmlElement("city")] public string City { get; set; } [XmlElement("street")] public string Street { get; set; } [XmlElement("zip")] public string Zip { get; set; } } ``` 然后,使用 `XmlSerializer` 来序列化和反序列化 XML 内容。例如,将 XML 内容反序列化为 `Person` 对象: ```csharp string xml = "<person><name>John</name><age>30</age><address><city>New York</city><street>Main St.</street><zip>10001</zip></address></person>"; XmlSerializer serializer = new XmlSerializer(typeof(Person)); using (StringReader reader = new StringReader(xml)) { Person person = (Person)serializer.Deserialize(reader); } ``` 如果 XML 内容包含多个 `<person>` 元素,可以将其反序列化为 `Person[]` 数组: ```csharp string xml = "<people><person><name>John</name><age>30</age><address><city>New York</city><street>Main St.</street><zip>10001</zip></address></person><person><name>Jane</name><age>25</age><address><city>Los Angeles</city><street>1st St.</street><zip>90001</zip></address></person></people>"; XmlSerializer serializer = new XmlSerializer(typeof(Person[]), new XmlRootAttribute("people")); using (StringReader reader = new StringReader(xml)) { Person[] people = (Person[])serializer.Deserialize(reader); } ``` 似地,使用 `XmlSerializer` 的 `Serialize` 方法可以将 C# 对象序列化为 XML 内容

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值