問題は、サンプル内の 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;
}
}