2012-01-31 92 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时,尤其如此,这似乎是由您发布的错误消息指示的。