c# - 简单的 C# Xml 序列化

标签 c# .net xml xml-serialization c#-4.0

我有一个类:

public class Car {

   public string Model {get;set;}

   public string SeatFinish {get;set;}

   public string Audio {get;set;}
}

我想使用XML序列化属性将其序列化为如下xml

<Car>
  <Model>name</Model>
  <Options>
   <SeatFinish>Leather</SeatFinish>
   <Audio>5 speaker</Audio>
  </Options>
</Car>

由于项目的具体原因,我不能只创建一个属性:

public List<string> Options; 

有没有一种方法可以通过属性指定要在某个 xml 元素(在本例中为“选项”节点)下序列化的属性?我可以编写允许这样做的自定义属性吗?任何建议表示赞赏。

编辑:

我看到有一个选项类可以工作,但是有没有办法在不创建其他类的情况下实现这一点?例如,我可能只想使用一个属性来执行此操作。

理想情况下我希望能够指定

[Parent("Options")]
public string SeatFinish {get;set;}

最佳答案

这是领域模型的一部分还是类似的?听起来您希望这些选项可以在汽车对象之外重复使用,那么为什么不创建一个单独的选项类呢?

public class Options
{
   public string SeatFinish {get;set;}
   public string Audio {get;set;}
}

并更改您的 Car 类以包含 Options 类:

public class Car 
{
   public string Model {get;set;}
   public Options Options {get;set;}
}

关于c# - 简单的 C# Xml 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3625875/

相关文章:

c# - 如何访问 SerialPort.Flush() 和 SerialPort.Finalize() 函数

c# - 有哪些网站提供有关 ASP.NET (C#) 的免费视频教程?

.net - LinFu.DynamicProxy 和 CaSTLe.DynamicProxy 有什么区别?

c# - MVVM WPF 保存和加载用户设置设计模式

c# - 使用 asp.net(C#) 更改 div 标签中的 css 类

c# - 应用程序设置中的 StringCollection 未存储

c# - 如何将 VB.net 常量转换为 C#?

xml - android 中的 SAXParseException

android - 在 Android 中扩充没有 XML 的 View

java - 从 XML 模式 (xsd) 生成 XML 实例