私は通常、[XmlRoot]、[XmlElement]、[XmlAttribute] で「プレースホルダー」クラスを使用し、xml をデシリアライザーに渡して、プレースホルダーの型のオブジェクトを提供します。これが完了したら、あとは厳密に型指定されたオブジェクトへの基本的な DataBinding だけです。
「Xml Enabled」のサンプル クラスを次に示します。
[XmlRoot(ElementName = "Car", IsNullable = false, Namespace="")]
public class Car
{
[XmlAttribute(AttributeName = "Model")]
public string Model { get; set; }
[XmlAttribute(AttributeName = "Make")]
public string Make { get; set ;}
}
そして、ファイルから適切に逆シリアル化する方法は次のとおりです。
public Car ReadXml(string fileLocation)
{
XmlSerializer carXml = new XmlSerializer(typeof(Car));
FileStream fs = File.OpenRead(fileLocation);
Car result = imageConfig.Deserialize(fs) as Car;
return result;
}
もちろん、FileStream を MemoryStream に置き換えて、Xml をメモリから直接読み取ることもできます。
Html に入ると、次のように変換されます。
<!-- It is assumed that MyCar is a public property of the current page. -->
<div>
Car Model : <%= MyCar.Model %> <br/>
Car Make : <%= MyCar.Make %>
</div>