我收到以下运行时错误:
类型'PaymentPortal.Payments.DataObjects.Address'和'OurWebApp.eProc.DataFormat.Entities.Address'都使用来自命名空间''的XML类型名称'Address'。使用XML属性为类型
指定唯一的XML名称和/或名称空间
两个类都有相同的名称。我需要反序列化包含OurWebApp.eProc.DataFormat.Entities.Address条目的请求。 我无法更改我需要反序列化的类的名称,原始类来自第三方提供的程序集。
有什么方法可以告诉(de)序列化程序将传入的'Address'解释为OurWebApp.eProc.DataFormat.Entities.Address的类型?
答案 0 :(得分:2)
您应该能够在Address类上使用XmlType属性 - 这将告诉XML Schema使用“ReplaceWith”而不是“Address”
[XmlType(TypeName="ReplaceWith")]
public class Address
{
//...etc
}
更多信息here
答案 1 :(得分:0)
您可以在Address类上指定命名空间吗?
[XmlType(Namespace = "http://OurWebApp.eProc.com")]
public class Address { }
这应该可以防止序列化中的任何冲突。