2012-01-31 99 views
1

我反序列化期間發現了以下錯誤CompanyDetails',來自命名空間'http://xml.domain.com/schema'。使用XML屬性爲類型指定唯一的XML名稱和/或名稱空間。XML序列化/反序列化的名字和繼承

我可以使用不同的類名,如下所示解決這個問題,但我不想...

[XmlRoot(ElementName = "CompanyDetails", Namespace = "http://xml.domain.com/schema/schema")] 
public class CompanyDetailsXX : MyLib.Xml.CompanyDetails 

我使用繼承因爲我不能夠改變的基類,需要添加額外的屬性(反序列化過程中不填充)

我想要的基地和父類具有相同的名稱,它是有意義的,如:

[XmlRoot(ElementName = "CompanyDetails", Namespace = "http://xml.domain.com/schema/schema")] 
    public class CompanyDetails : MyLib.Xml.CompanyDetails 

任何想法?

回答

0

您需要爲您的子類型指定一個不同的XML元素名稱。

您在C#中爲您的子類創建了不同的類名,對嗎?相同的要求適用於XML類型。 XML子類型不能與其父類具有相同的名稱。

當父對象和子對象都流出到XML時,尤其如此,這似乎是由您發佈的錯誤消息指示的。