ネストされた子クラスを持つ単純な pesron クラス。すべてのプロパティに属性が付けられ、プライベート フィールドは無視されます。
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.450")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[XmlRoot("person")]
public class Person
{
[XmlIgnore]
int _id;
[XmlIgnore]
string _firstName;
[XmlIgnore]
string _lastName;
[XmlIgnore]
Person[] _children;
public Person(){}
public Person(int id, string firstName, string lastName)
{
this._id = id;
this._firstName = firstName;
this._lastName = lastName;
}
[XmlAttribute]
public int Id { get { return _id; } }
[XmlAttribute]
public string FirstName { get { return _firstName; } }
[XmlAttribute]
public string LastName { get { return _lastName; } }
[XmlElement("children")]
public Person[] Children
{
get { return _children; }
set { _children = value; }
}
}
上記のタイプがシリアル化されると、xml 構造体のみが作成され、属性は無視されます。出力は
<?xml version="1.0" encoding="utf-16" ?>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<children>
<children>
<children />
<children />
</children>
<children>
<children />
</children>
</children>
<children />
</person>