[英]XmlSerializer sample from MSDN fails
我正在嘗試學習如何使用XMLSerializer。 我使用示例代碼創建了一個VS2010項目: http : //msdn.microsoft.com/en-us/library/tz8csy73( v = vs.100) .aspx 。
該代碼應該將簡單的XML文檔反序列化為簡單的C#對象。 它編譯並運行時沒有錯誤,但無法恢復C#對象。 所有字段保持為0或null。
我按照示例的要求安裝了.NET Framework 4.0。 我在最后一個Console.Write上放了一個斷點,可以看到所有值都是0或null。
問題是示例中的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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.