簡體   English   中英

來自MSDN的XmlSerializer示例失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM