WCF接口和派生类

Pra*_*ant 4 wcf

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

mar*_*c_s 6

如果您有派生类,则需要在数据协定上"宣传"这些类:

[DataContract]
[KnownType(typeof(DerivedType1))]
[KnownType(typeof(DerivedType2))]
public class BaseType
{
   ......    
}
Run Code Online (Sandbox Code Playgroud)

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

[ServiceKnownType(typeof(DerivedType1))]
[ServiceKnownType(typeof(DerivedType2))]
[ServiceContract()]
public interface IService
{
    [OperationContract]
    BaseType GetItems();
}
Run Code Online (Sandbox Code Playgroud)

有关更多背景信息,请查看有关数据协定已知类型服务已知类型的MSDN文档.