WCF服务不支持重载方法?

A.T*_*.T. 10 wcf overloading

我有两个名为的方法

[OperationContract]
UserAccount GetUser(Int32 id);

[OperationContract]
UserAccount GetUser(string username, string password);
Run Code Online (Sandbox Code Playgroud)

当我尝试构建它们时,他们说你不能在服务中使用相同的名称方法?是吗.

Jeh*_*hof 14

这是WSDL的限制.它不支持与C#/ .NET相同的重载概念,因此服务上的方法名称必须是唯一的.您有两种方法可以解决您的问题.

首先是为您的方法使用不同的名称.另一个是在你的一个OperationContracts上设置Name属性,就像这样

[OperationContract(Name="GetUserById")]
UserAccount GetUser(Int32 id);

[OperationContract]
UserAccount GetUser(string username, string password);
Run Code Online (Sandbox Code Playgroud)

  • @Arun该名称用于WCF服务的WSDL描述.如果您使用普通的WCF-Client,它应该提供您在接口上定义的重载方法 (3认同)