我们可以使用两个WCF服务,其中一个服务契约派生自另一个服务契约,并且在派生契约中具有扩展方法。从WCF客户端访问此合同的结果是什么?即如果访问IDService会发生什么 E.g。
[ServiceContract]
public interface IBaseService
{
public void A();
...
}
[ServiceContract]
public interface IDService: IBaseService
{
public static void B(this IBaseService S);
....
}
答案 0 :(得分:2)
您无法在界面中定义静态方法(也不能在上面指定的访问修饰符public
)。
答案 1 :(得分:1)
一个很好的问题 - 让我头疼不已。
对于WCF,扩展方法没有意义 - 对于这个问题,WSDL也是如此。
如果使用Service Reference
生成客户端,则不会看到扩展方法(因为WSDL对扩展方法一无所知),因此您无法使用它。
如果您使用DLL/Project reference
,您的代码将在本地调用,而不是通过代理调用。