【发布时间】:2013-05-09 14:49:01
【问题描述】:
使用 .Net 4 中的 XmlSerializer,我正在尝试序列化一个包含两个具有相同名称但名称空间不同的类的类。
[XmlInclude(typeof(MyNamespace1.MyClass))]
[XmlInclude(typeof(MyNamespace2.MyClass))]
public class SuperInfo
{
public MyNamespace1.MyClass A{ get; set; }
public MyNamespace2.MyClass B{ get; set; }
}
事实证明,序列化程序无法区分我拥有的这两个同名类。异常显示:
“Types MyNamespace1.MyClass”和“MyNamespace2.MyClass”都使用来自命名空间“”的 XML 类型名称“MyClass”。使用 XML 属性为类型指定唯一的 XML 名称和/或命名空间。
我找到了一个解决方案in this thread,包括用这样的属性装饰同名类:
[XmlType("BaseNamespace1.MyClass")]
[XmlType("BaseNamespace2.MyClass")]
但我不允许这样做,因为就我而言,这些类来自自动生成的网络服务代理。
你有解决办法吗?
【问题讨论】:
标签: c# .net .net-4.0 xml-serialization