WCF类在具有相同名称的不同服务契约中实现两个操作契约

Arc*_*hie 8 c# wcf multiple-inheritance servicecontract operationcontract

我已宣布两项服务合同如下:

[ServiceContract]
public interface IContract1
{
    [OperationContract]
    double Add(int ip);
}

[ServiceContract]
public interface IContract2
{
    [OperationContract]
    double Add(double ip);
}
Run Code Online (Sandbox Code Playgroud)

我有一个实现这两个合同的类.我为这两个合同创建了两个端点.但我无法从客户端代码访问该服务.当我尝试更新服务引用时,它显示一个很大的错误:

元数据包含无法解决的错误....没有端点监听...等.

我知道你不能拥有两个OperationContract同名的s,但是有可能在不同的服务合同中有两个同名但签名不同的操作合同吗?

Yur*_*kyy 13

如果一个服务实现了两个合同,那么您应该为您的操作合同指定唯一的名称.

[ServiceContract]
public interface IContract1
{
    [OperationContract(Name="AddInt")]
    double Add(int ip);
}

[ServiceContract]
public interface IContract2
{
    [OperationContract(Name="AddDouble")]
    double Add(double ip);
}
Run Code Online (Sandbox Code Playgroud)


Pre*_*gha 6

您可以使用以下内容.

[ServiceContract]
public interface IContract1
{
    [OperationContract(Name = "Add1")]
    double Add(int ip);
}

[ServiceContract]
public interface IContract2
{
    [OperationContract(Name = "Add2")]
    double Add(double ip);
}
Run Code Online (Sandbox Code Playgroud)