問題是樣本中的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;
}
}
哦XML命名空間的正確的命名空間,所以有用的,但有時... ...那麼令人討厭。 – 2013-03-09 00:46:58
@ ta.speot.is非常討厭。 :-P – 2013-03-09 00:55:25
謝謝,JaredPar。你建議的兩種方法都像你說的那樣工作。我不應該假定MSDN示例代碼應該按原樣工作。我認爲這更可能是我的設置。 – 2013-03-09 02:23:19