2017-01-19 8 views
0

다중 기술로 구현 된 일반 서비스 인터페이스가 있습니다.상속 인터페이스의 메서드에 특성을 추가 할 수있는 방법이 있습니까?

  1. IGenralService
  2. IWcfService IGenralService에서 상속 :

    예를 들어, 나는 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"속성을 포함하지 않습니다.

고유 한 메서드에 특성을 추가 할 수있는 방법이 있습니까?

+1

'IWcfService'가'IGeneralService'가 아니라 속성으로 꾸며질'Login' 메소드를 원하십니까? 이것은 당신의 인터페이스를 구현하는 어떤 클래스도 그 속성을 상속받지 않기 때문에 기본적으로 의미가 없습니다. 다시 선언해야합니다. 어쨌든 인터페이스에서이를 생략 할 수 있습니다. – HimBromBeere

답변

2

속성을 인터페이스를 구현하는 클래스에 상속하지 않기 때문에이 방법을 사용할 수 없다고 생각합니다. 그래서 기본적으로 멤버를 인터페이스에 속성을 추가하는 것은 매우 쓸모가, 당신은 자신의 클래스에이 작업을 수행해야한다 :

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

Alternativly 당신은 또한 당신의 인터페이스는 속성을 상속 할 수있게된다 추상 클래스 만들 수 있습니다. 이 작업을 수행하는 방법은 this post을 참조하십시오.