以下是我的WCF DataContract基类
[DataContract]
public class BaseClass
{
//some datamembers
}
这是我的派生类......
[DataContract]
public class DerivedClass1 : BaseClass
{
[DataMember]
public string ProductName{get;set;}
}
由于需求发生了一些变化,我添加了一个派生类型,它也具有相同的属性'ProductName'。
现在代码结构就是......
[DataContract]
public class BaseClass
{
//some datamembers
[DataMember]
public string ProductName{get;set;}
}
[DataContract]
public class DerivedClass1 : BaseClass
{
//[DataMember]
//public string ProductName{get;set;} property moved to base class
}
[DataContract]
public class DerivedClass2 : BaseClass
{
//some datamembers specific to DerivedClass2
}
所以我将属性'ProductName'移到了基类。但是现在当从客户端调用现有的datacontract返回Derivedclass1的列表时,我没有看到productName作为响应。不知何故,我的DerivedClass1并没有从baseget属性productName属性。 可能是什么原因?编写代码时我是否犯了错误?
答案 0 :(得分:0)
尝试对派生类使用[KnownType(typeof(BaseClass))]属性,并确保更新服务引用。
答案 1 :(得分:0)
我试过这个并且工作正常!
这是SubClass SychRequests
这就是我在Intellisense中得到的。
你还缺少什么,不能说什么。如果您在响应中看不到 ProductName ,那可能是因为您没有在请求中发送。