0

有多种技术实现的通用服务接口。

例如,我有 2 个接口:

  1. 通用服务
  2. 从 IGenralService 继承的 IWcfService。

基础接口:

    public interface IGenralService
    {
         bool Login(string username, string password);
    }

和 wcf 服务:

public interface IWcfService : IGenralService
{
    [OperationContract(IsOneWay = false)]
    [FaultContract(typeof(Exception))]
    void DoSomething();
}

IWcfService 特定于 Wcf,需要 wcf 方法的“OperationContract”属性。“登录”方法不包括属性“OperationContract”。

有没有办法为固有方法添加属性?

4

1 回答 1

2

我想这是不可能的,因为属性不会继承到实现接口的类。所以基本上向接口成员添加属性是没有用的,你必须在类本身上这样做:

public class WcfService : IWcfService 
{
    [OperationContract(IsOneWay = false)]
    [FaultContract(typeof(Exception))]
    void DoSomething() { ... }
}

或者,您还可以使您的接口成为一个抽象类,您可以继承属性。看看这篇文章如何做到这一点。

于 2017-01-19T15:25:23.203 回答