代码之家  ›  专栏  ›  技术社区  ›  Prashant

WCF接口和派生类

wcf
  •  4
  • Prashant  · 技术社区  · 16 年前

    我有一个wcf服务,必须将接口公开为datacontract。接口有两个派生类。 WCF服务将返回派生类型的对象。客户端必须将其转换为派生类。在客户方可以吗?我该怎么办?

    1 回复  |  直到 15 年前
        1
  •  6
  •   marc_s MisterSmith    16 年前

    如果您有派生类,则需要在数据协定上“公布”那些类:

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

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

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

    查看上的msdn文档 Data Contract Known Types Service Known Types 了解更多背景信息。

    推荐文章