2

我正在使用 wcf Web 服务作为backbone.js 应用程序的持久层。

  [OperationContract]
    [WebGet]
    public IEnumerable<AnalysisParameterSet> AnalysisParameters()
    {
     // implementation
    }

    [OperationContract]
    [WebInvoke(Method = "POST")]
    public void AnalysisParameters(IEnumerable<AnalysisParameterSet> parameterSets)
    {
     // implementation
    }

我想在服务上创建两种名称相同但签名不同的方法,一种用于 GET,一种用于 POST。

但是 wcf 抱怨有 2 个方法具有相同的名称。我知道我可以使用 OperationContract 的 name 属性来区分它们。这并不理想,因为主干更喜欢方法共享相同的名称。

我可以对 GET 和 POST 使用相同的方法名称吗?

如果我不能在 WCF 中做到这一点。我将如何修改backbone.js 以使用不同的方法进行发布和获取。

4

1 回答 1

2

我相信你想要的是这样的:

[OperationContract]
[WebGet(UriTemplate = "/AnalysisParameters")]
public IEnumerable<AnalysisParameterSet> GetAnalysisParameters()
{
 // implementation
}

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/AnalysisParameters")]
public void PostAnalysisParameters(IEnumerable<AnalysisParameterSet> parameterSets)
{
 // implementation
}

根据 http 方法(post/get),将调用一个或另一个函数。

于 2013-08-01T20:39:34.117 回答