请检查下面的例子
namespace GServices
{
[ServiceKnownType(typeof(SearchType))]
[ServiceContract(SessionMode = SessionMode.Allowed)]
public interface ITest
{
[OperationContract]
int subtract(int x, int y);
}
[ServiceKnownType(typeof(SearchType))]
[ServiceContract(SessionMode = SessionMode.Allowed)]
public interface ITest2
{
[OperationContract]
int add(int x, int y);
}
public class G : ITest2, ITest
{
public int add(int x, int y)
{
return x + y;
}
public int subtract(int x, int y)
{
return x + y;
}
}
}
ITEST具有减法()方法和Itest2具有添加()方法。
两者都是由一个叫G.具体类实现
如果我只是想揭露通过WCF的ITEST,我有以下端点配置
<service name="GQS1" behaviorConfiguration="GQwcfBehaviour">
<endpoint address="DP2Svcs" binding="wsHttpContextBinding" bindingConfiguration="wsHttpEndpointBindingConfig" contract="GServices.itest">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</service>
当我运行此服务,并检查WSDL,我可以看到,这是在itest2方法也出现了WSDL。 在该示例情况下,减法()方法应当仅被暴露。 但是add()方法也被暴露出来。
我的要求是已在ITest接口方法应该只暴露。 在这种情况下,我要揭露其在ITEST声明仅减法()方法。 但无论其执行驻留在只有一个具体的类“G”。 我缺少的是在这里吗?
编辑:我已经给我的Service.svc文件内容:
<%@ ServiceHost Language="C#" Debug="true" Service="GServices.G" %>