2

backbone.js アプリケーションの永続化レイヤーとして wcf Web サービスを使用しています。

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

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

サービスに同じ名前で署名が異なる 2 つのメソッドを作成したいと考えています。1 つは GET 用で、もう 1 つは POST 用です。

ただし、wcf は、同じ名前のメソッドが 2 つあると不平を言っています。OperationContract の name プロパティを使用してそれらを区別できることは承知しています。バックボーンはメソッドが同じ名前を共有することを好むため、これは理想的ではありません。

GET と POST の両方に同じメソッド名を使用できますか?

WCFでこれを行うことができない場合。post と Get に別のメソッドを使用するように 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 に答える