0

外部ソースからのxmlドキュメントがあるため、構造を変更できません。私はそれをC#オブジェクトにシリアル化する必要があります:-

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

上記の単純なxmlドキュメントでC#の逆シリアル化されたクラスがどのようになるかをアドバイスできる人はいますか?

4

2 に答える 2

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

を Vauxhall に設定すると、次のCarMakeようになります。

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

Valueたとえば、Wheelsto を設定すると、次のAstraようになります。

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

編集

全体的な構造が必要であることを確認したら、次のようになります。

public class Test
{
   <XmlArray("Vehicles")>
   <XmlArrayItem("Car")>
   public List<Wheel> Wheels = new List<Wheel>();
}
于 2012-12-04T16:51:29.147 に答える
0

一般的な Car クラスを作成してから、特定のメーカーごとにそのクラスを実装できるはずです-ひどいですが、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
{
}
于 2012-12-04T17:09:16.123 に答える