0

私は多くのネストされたクラスを持つ基本クラス dlx10 を持っています。

[System.Xml.Serialization.XmlRootAttribute("dlx")]
class dlx10 {

private car10[] carField;

private clock10[] clockField;

private device10[] deviceField;
...

[System.Xml.Serialization.XmlElementAttribute("car")]
public car10[] car {
    get {
        return this.carField;
    }
    set {
        this.carField = value;
    }
}

[System.Xml.Serialization.XmlElementAttribute("device")]
public device10[] device {
    get {
        return this.deviceField;
    }
    set {
        this.deviceField = value;
    }
}
...
}

class car10 {

door10[] doorField;

[System.Xml.Serialization.XmlElementAttribute("door")]
public door10[] door {
        get {
            return this.doorField;
        }
        set {
            this.doorField = value;
        }
    }
}


class device10 {

private diag10[] diagField;

private dns10[] dnsField;
...
}
...

このクラスから、ソリューションにコピーして貼り付けることができる XmlWriter c# コードを生成する必要があります。出力は次のようになります。

writer.WriteStartElement("dlx");
writer.WriteAttributeString("vars", "1.0");
writer.WriteAttributeString("id", "133");
writer.WriteAttributeString("type", "system_info");
foreach (var d in devices)
{
    writer.WriteStartElement("device");
    writer.WriteAttributeString("software", d.Software);
    foreach (var s in d.Sensors)
    {
        writer.WriteStartElement("sens");
        writer.WriteAttributeString("name", s.Name);

        foreach (var c in s.Channels)
        {
            writer.WriteStartElement("chan");
            writer.WriteAttributeString("id", c.Id.ToString());
            writer.WriteEndElement();
        }

        writer.WriteEndElement();
    }

    writer.WriteEndElement();
}
writer.WriteEndElement();

誰かが私がそれをするのを手伝ってくれますか? このクラスは手動で行うには大きすぎます。そのクラスからさまざまな種類のコードを作成する必要があるため、コードを生成する過程で特定のプロパティを省略する必要があります。

4

0 に答える 0