私は多くのネストされたクラスを持つ基本クラス 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();
誰かが私がそれをするのを手伝ってくれますか? このクラスは手動で行うには大きすぎます。そのクラスからさまざまな種類のコードを作成する必要があるため、コードを生成する過程で特定のプロパティを省略する必要があります。