我们有一个asmx Web服务A,它使用具有以下DataContract结构的WCF服务B.
[DataContract]
public class Animal
{
[DataMember]
string AnimalName { get; set; }
[DataMember]
Head[] head { get; set; }
}
[DataContract]
public class Person
{
[DataMember]
string PersonName { get; set; }
[DataMember]
Head[] head { get; set; }
}
[DataContract]
public class Head
{
[DataMember]
string Title { get; set; }
}
运行asmx Web服务A时,我们收到以下错误
类型'Animal.Head'和'Person.Head'都使用来自命名空间'http://tempuri.org/'的XML类型名称'Head'。使用XML属性为类型指定唯一的XML名称和/或命名空间。
我们还尝试在DataContract中放置一个不同的XMLElement命名空间但没有帮助。
[XmlElement(Namespace = "urn:/A/Animal/")]
[DataMember]
Head[] head { get; set; }
对此有任何帮助非常感谢。
XmlElement用于XmlSerializer,wcf默认使用DataContractSerializer来序列化和反序列化模型。
如果你想使用XmlSerializer,你可以参考https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/using-the-xmlserializer-class
DataContract还有一个Namespace属性,可以为模型指定命名空间。