C# XML 序列化中的 XML 元素位置
本文关键字:XML 元素 位置 序列化 | 更新日期: 2023-09-27 18:31:56
我正在尝试使用 XmlSerializer 类将这样的类序列化为 xml:
public class Car {
public InsuranceData Insurance { get; set; } // InsuranceData is a class with many properties
public int Person Owner { get; set; }
public int Age { get; set; }
public string Model { get; set; }
// lots of other properties...
}
我想在 xml 文档的最后拥有保险属性:
<Car>
...
<Insurance>
...
</Insurance>
</Car>
我需要这样做,因为处理 xml 的服务器只能在这种布局中正常工作(我无法更改服务器代码)。我尝试将属性移动到类的末尾,但这没有任何区别,并且我没有找到与序列化相关的任何属性。我可以通过将 xml 作为字符串进行操作来解决此问题,但我更喜欢更优雅的解决方案。这些对象有很多属性,所以我不想手动创建 xml 字符串。
以下是我为测试您的方案所做的工作:
public static void Main(string[] args)
{
Insurance i = new Insurance();
i.company = "State Farm";
Car c = new Car();
c.model = "Mustang";
c.year = "2014";
c.ins = i;
XmlSerializer xs = new XmlSerializer(typeof(Car));
StreamWriter sw = new StreamWriter("Car.xml");
xs.Serialize(sw, c);
sw.Close();
}
public class Car
{
public string model { get; set; }
public string year { get; set; }
public Insurance ins {get; set;}
}
public class Insurance
{
public string company { get; set; }
}
。这是我的结果:
<?xml version="1.0" encoding="utf-8"?>
<Car xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<model>Mustang</model>
<year>2014</year>
<ins>
<company>State Farm</company>
</ins>
</Car>
希望这有帮助。