我有:
[DataContract]
public class A
{
[DataMember]
public int X { get; set; }
}
[DataContract]
[KnownType(typeof(Derived<A>))]
public class Base {}
[DataContract]
public class Derived<T>: Base {
[DataMember]
public T Data {get; set; }
}
Service方法返回包含Derived类对象的Base类的IEnumerable。 自动生成的WCF客户端检索数据并正确检测类型并创建Derived类的实例,但Derived.Data.X未映射,即为0.收到的soap消息是正确的。 有没有想法为什么派生类的泛型属性没有从客户端的soap消息中正确映射?
答案 0 :(得分:2)
我强烈建议您避免服务合同中的泛型。 SOA世界与服务合同中的泛型类型不友好。请查看其他人报告的问题:
Error when updating service reference.The URI prefix is not recognized