WCF接口和派生类

时间:2010-06-07 14:57:15

标签: wcf

我有一个WCF服务,必须将接口公开为datacontract。接口有两个派生类。 WCF服务将返回派生类型的对象。客户端必须将其强制转换为派生类。在客户端这可能吗?。我的方法应该是什么?

1 个答案:

答案 0 :(得分:6)

如果你有派生类,你需要在数据合同上“宣传”那些:

[DataContract]
[KnownType(typeof(DerivedType1))]
[KnownType(typeof(DerivedType2))]
public class BaseType
{
   ......    
}

或者您也可以在服务合同上指定这种关系:

[ServiceKnownType(typeof(DerivedType1))]
[ServiceKnownType(typeof(DerivedType2))]
[ServiceContract()]
public interface IService
{
    [OperationContract]
    BaseType GetItems();
}

查看Data Contract Known TypesService Known Types上的MSDN文档,了解更多背景信息。

相关问题