2011-04-21 56 views
3

我們可以使用兩個WCF服務,其中一個服務合約從另一個服務合約派生並且在派生合約中具有擴展方法。從WCF客戶端訪問此合約的結果是什麼。即如果IDService訪問 E.g.會發生什麼情況數據合同中的擴展方法

[ServiceContract] 
public interface IBaseService 
{ 
    public void A(); 
    ... 
} 

[ServiceContract] 
public interface IDService: IBaseService 
{ 
    public static void B(this IBaseService S); 
    .... 
} 

回答

1

一個很好的問題 - 讓我很多頭撓。

對於這個問題,擴展方法對WCF和WSDL沒有意義。

如果您使用Service Reference來生成客戶端,您將看不到擴展方法(因爲WSDL將不知道任何有關擴展方法的信息),因此您無法使用它。

如果您使用DLL/Project reference,您的代碼將在本地調用,而不是通過代理。

2

您不能在接口中定義靜態方法(也不能在上面指定的訪問修飾符public)。