问题在于示例中的 XML 文件。元素的名称以 XML 命名空间为前缀,这导致序列化程序无法将它们映射到OrderedItem
类型中的原始字段。如果您删除 XML 文件中的名称空间,此示例将正确运行。
或者,您可以装饰OrderedItem
类型以包含 simple.xml 文件中使用的正确命名空间
public class OrderedItem
{
[XmlElement(Namespace = "http://www.cpandl.com")]
public string ItemName;
[XmlElement(Namespace = "http://www.cpandl.com")]
public string Description;
[XmlElement(Namespace = "http://www.cohowinery.com")]
public decimal UnitPrice;
[XmlElement(Namespace = "http://www.cpandl.com")]
public int Quantity;
[XmlElement(Namespace = "http://www.cohowinery.com")]
public decimal LineTotal;
// A custom method used to calculate price per item.
public void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
}