次の XML を逆シリアル化しようとしています。
<Test><string name="Name">Test name</string><string name="Description">Some fake description.</string></Test>
次のクラスに入ります。
[XmlRoot("Test")]
public class Test
{
[XmlElement("string")]
public string Name;
[XmlElement("string")]
public string Description;
}
私がやっているコードを使用しています。
var xml = @"<Test><string name=""Name"">Test name</string><string name=""Description"">Some fake description.</string></Test>";
XmlReader reader = new XmlTextReader(new StringReader(xml));
XmlSerializer serializer = new XmlSerializer(typeof(Test));
serializer.Deserialize(reader);
これを実行すると、メッセージとともに InvalidOperationException が発生します
タイプ「テスト」を反映するエラーがありました。
Description プロパティをコメントアウトすると、機能します。属性値またはテキストを取得できますが、要素が文字列で、「名前」属性に特定の値がある XmlText だけを取得することはできません。
これは、LINQ を使用しなくても可能ですか?