我通常使用带有 [XmlRoot]、[XmlElement]、[XmlAttribute] 的“占位符”类,并且我将 xml 传递给反序列化器,它为我提供了占位符类型的对象。完成此操作后,唯一要做的就是对强类型对象进行一些基本的 DataBinding。
这是一个“启用 Xml”的示例类:
[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>