【发布时间】:2011-07-25 22:54:25
【问题描述】:
我有一个定义 IInterface 接口的 WCF Web 服务。该接口声明了两个方法:Method1 和 Method 2。我想通过 SOAP 端点公开这两个方法,但只希望通过 REST 端点公开 Method2。
示例声明:
[ServiceContract]
public Interface IInterface
{
[OperationContract]
void Method1();
[OperationContract]
void Method2();
}
public class MyService : IInterface
{
public void Method1(){...}
public void Method2(){...}
}
到目前为止,我已经尝试创建两个额外的接口:IInterfaceSOAP 和 IInterfaceREST,它们都继承自 IInterface。从IInterface 中删除Method2() 声明并将其添加到IInterfaceSOAP 并创建两个单独的类MyServiceSOAP : IInterfaceSOAP 和MyServiceREST : IInterfaceREST。然后为每个派生类定义两个单独的端点。
但是当我使用WcfTestClient 测试服务时,soap 服务只列出Method1()(在基础IInterface 中定义的那个)。
上述模式是通过两个单独的端点选择性地公开方法的公认解决方案吗?还是我错过了其他一些方法?
提前致谢。
附:请注意,上面的界面是我正在尝试做的极其简化的版本。生产版本中还有很多方法。
【问题讨论】:
标签: .net wcf web-services rest soap