假设这是一个ServiceContract

[ServiceContract]
public interface MyService
{
    [OperationContract]
    int Sum(int x, int y);

    [OperationContract]
    int Sum(double x, double y);

}

C#中允许方法重载,但WCF不允许重载operation contracts 托管程序在托管时将抛出InvalidOperationException

推荐答案

简而言之,不能重载方法的原因与WSDL不支持C#中的重载概念有关.下面的帖子详细介绍了为什么这是不可能的.

http://jeffbarnes.net/blog/post/2006/09/21/Overloading-Methods-in-WCF.aspx

要解决此问题,可以显式指定OperationContractName属性.

[ServiceContract]
public interface MyService
{
    [OperationContract(Name="SumUsingInt")]
    int Sum(int x, int y);

    [OperationContract(Name="SumUsingDouble")]
    int Sum(double x, double y);
}

.net相关问答推荐

MSBuild:CopyToOutputDirectory不会将本机DLL复制到输出

[x.x.x,)在Packages.lock.json依赖项中是什么意思?

.NET最小API BadRequest响应不返回正文

如何使用 awslocal 通过 localstack 中的 cloudwatch events/eventbridge 触发 lambda

仅在有换行符时捕获分隔符之间的所有文本

线程安全性的单元测试?

为什么 .NET 内部 Hashtable 中有一个 Thread.Sleep(1)?

JavaScript 中的IsNullOrWhitespace?

Style 和 ControlTemplate 的区别

如何在 EF 代码优先中禁用链接表的级联删除?

我可以使用 UriTemplate 将非字符串传递给 WCF RESTful 服务吗?

如何根据新的安全策略在 .Net 中发送邮箱?

基于多个字符分隔符拆分字符串

.NET 中是否有可序列化的通用键/值对类?

返回 IList 是否比返回 T[] 或 List 更糟糕?

我应该绑定到 ICollectionView 还是 ObservableCollection

将两个列表映射到 C# 中的字典中

MemoryCache 不遵守配置中的内存限制

在 IIS 中访问 .svc 文件时出现 HTTP 404

在 try/catch/finally 中等待的一个很好的解决方案?