SGEN:来自命名空间的顶级XML元素引用了不同的类型

时间:2010-11-30 15:03:51

标签: c# xml serialization

我有以下类(都在同一名称空间中定义,Test.NamespaceTest):

[XmlRootAttribute("rootTag")]
public class BaseClass
{
}


[XmlRootAttribute("rootTag")]
public class MyClass : BaseClass
{
}

和类似的

[XmlRootAttribute("rootTag")]
public class Class1
{
}


[XmlRootAttribute("rootTag")]
public class Class2
{
}

当sgen尝试为这些类创建序列化程序集时,我收到以下错误(对于BaseClass和MyClass也是如此):

The top XML element 'rootTag' from namespace " references distinct types Test.NamespaceTest.Class1 and Test.NamespaceTest.Class2. Use XML attributes to specify another XML name or namespace for the element or types.

现在,这些类应使用相同的根名称,因此我定义了XmlRootAttribute。为了让sgen工作,我需要做什么?这些类是序列化的,并作为SOAP请求发送到现有服务,所以如果我添加命名空间值,那么当它尝试反序列化请求时,不能弄乱服务,因为最初没有定义名称空间?

1 个答案:

答案 0 :(得分:1)

添加一些命名空间属性后解决了这个问题。