因为最近一个wcf服务需要对外开放很多方法,而且这些个方法都是可以按实体对象来分类的,所以就将这些方法按实体分类到多个契约中,举例如下:
[ServiceContract]
public
interface ISys_Dictionary
{}
[ServiceContract]
public interface ISys_Users
{}
[ServiceContract]
public interface ISys_SuperUser
{}
然后在服务类上这样引用
public class SDServices : ISys_Dictionary, ISys_Users, ISys_SuperUser
{}
但服务发布后发现客户端只能识别第一个契约中的方法,也就是ISys_Dictionary契约中的方法,后面两个契约的方法客户端识别不了。所以又重新建了一个总契约,继承上面的所有接口,然后wcf服务直接继承这个总接口就OK了,如下:
[ServiceContract]
Public interface IAllContract: ISys_Dictionary, ISys_Users, ISys_SuperUser{}
服务继承IAllContract契约
public class SDServices : IAllContract
{}
需注意的是,所有的契约都需要申明ServiceContract特性,而不是仅仅只设置IAllContract