これは XML サンプルですが、属性を定義するために別のアプローチを使用しています。
<TestXML>
<TestData attr1="MyAttr" attr2="1" DateAdded="">25</TestData>
</TestXML>
今私のクラス定義:
public class TestXML() {
[XmlElement("TestData")]
public IntegerValue value {get; set;}
}
public class IntegerValue() {
public int value {get; set;}
[XmlAnyAttribute]
public string[] XAttributes {get; set;}
}
次に、逆シリアル化するコード:
string xml = "<TestXML><TestData attr1=\"MyAttr\" attr2=\"1\" DateAdded=\"\">25</TestElement> </TestXML>"
using (StringReader sr = new StringReader(xml)) {
XmlSerializer serializer = new XmlSerializer(typeof(TestXML));
TestXML myxml = (TestXML)serializer.Deserialize(sr);
}
次の結果が生成されます。
myxml
value | 0
XAttributes {string[7]}
[0] "MyAttr"
[1] "1"
[2] ""
xml は正しくフォーマットされています。XMLAnyAttribute を使用して逆シリアル化する値を取得できませんでした。属性の値とともに名前を取得したいのですが、これまでのところそのアプローチの例は見つかりませんでした。