有多种技术实现的通用服务接口。
例如,我有2个接口:
基础界面:
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”。
有没有办法为固有方法添加属性?
答案 0 :(得分:2)
我认为这是不可能的,因为属性不会继承到实现接口的类。所以基本上向接口成员添加属性是没用的,你必须在类本身上执行此操作:
public class WcfService : IWcfService
{
[OperationContract(IsOneWay = false)]
[FaultContract(typeof(Exception))]
void DoSomething() { ... }
}
另外,您还可以将接口设置为抽象类,从而可以继承属性。请查看this post了解如何执行此操作。