WCF中的函数重载

Moo*_*ons 1 asp.net wcf

我想在WCF中实现函数重载,但我不允许这样做

    [OperationContract]
    [WebInvoke(Method = "GET",
    ResponseFormat = WebMessageFormat.Json)]
    branch_view[] GetBranches();

    [OperationContract]
    [WebInvoke(Method = "GET",
    ResponseFormat = WebMessageFormat.Json)]
    branch_view[] GetBranches(int pageNo , int pageSize);
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

在同一个具有相同名称的合同中不能有两个操作,QHRService.IEntityService类型中的方法GetBranches和GetBranches违反了此规则.您可以通过更改方法名称或使用OperationContractAttribute的Name属性来更改其中一个操作的名称.

为什么WCF不允许函数重载.

我可以更改名称以使我的功能工作,但任何原因?

任何帮助表示赞赏

Aak*_*shM 5

WCF被设计为一个完全通用的通信框架 - 这意味着客户端可能不是基于.NET的,因此可能对方法重载没有任何了解.

有一些功能可用于具有相同名称的方法,但是可靠地工作是一种痛苦; 我强烈建议只是咬住子弹并使用不同的方法名称,即使它感觉"错误".