简单的C#Xml序列化

Gre*_*oud 2 .net c# xml xml-serialization c#-4.0

我有一节课:

public class Car {

   public string Model {get;set;}

   public string SeatFinish {get;set;}

   public string Audio {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

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

<Car>
  <Model>name</Model>
  <Options>
   <SeatFinish>Leather</SeatFinish>
   <Audio>5 speaker</Audio>
  </Options>
</Car>
Run Code Online (Sandbox Code Playgroud)

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

public List<string> Options; 
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以指定via属性,在某个xml元素(在本例中为"Options"节点)下序列化属性?我可以写一个允许这个的自定义属性吗?任何建议表示赞赏

编辑:

我看到有一个选项类可以工作但是有没有创建其他类来实现这一点?例如,我可能只想用一个属性来做这件事.

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

[Parent("Options")]
public string SeatFinish {get;set;}
Run Code Online (Sandbox Code Playgroud)

djd*_*d87 5

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

public class Options
{
   public string SeatFinish {get;set;}
   public string Audio {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

并改变你的Car课程来举办Options课程:

public class Car 
{
   public string Model {get;set;}
   public Options Options {get;set;}
}
Run Code Online (Sandbox Code Playgroud)