2011-04-21 103 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)。