XML的C#结构

时间:2012-12-04 16:41:54

标签: c# serialization

我有一个来自外部源的xml文档,因此我无法更改结构。我需要将它序列化为C#对象: -

<vehicles>
   <Car>
       <Vauxhall>
          <Driver>
             <Name>John</Name>
          </Driver>
   </Car>
   <Car>
       <Ford>
         <Driver>
            <Name>Jack</Name>
         </Driver>
       </Ford>
   </Car>
</vehicles>

任何人都可以为上述简单的xml文档提供C#反序列化类的建议吗?

2 个答案:

答案 0 :(得分:0)

Public Class Wheels
{
  <XmlAttribute()>
  public string CarMake;
  //If you want to have a value in your "Wheels"
  <XmlText()>
  public string Value;
}

CarMake设置为Vauxhall,你应该得到:

<Vehicle>
  <Car CarMake="Vauxhall"\>
<Vehicle>

如果您将Value的{​​{1}}设置为例如Wheels,您将获得:

Astra

修改

在看到你想要整体结构之后你会有这样的事情:

<Vehicles>
  <Car CarMake="Vauxhall">Astra<Car/>
<Vehicles>

答案 1 :(得分:0)

你应该能够创建一个通用的Car类,然后为每个特定的make制作那个类 - 很糟糕,但是我不知道如果你不能改变xml,你还能怎么做呢

public class Car
{
    private Driver _driver;

    public Driver Driver
    {
        get
        {
            return _driver;
        }
        set
        {
            _driver = value;
        }
    }
}

public class Driver
{
    private string _name;

    public string Name
    {
        get
        {
            return _name;
        }
        set
        {
            _name = value;
        }
    }
}

public class Vauxhall : Car
{
}

public class Ford : Car
{
}