OperationContract Name和UriTemplate

时间:2014-02-04 10:37:08

标签: wcf operationcontract uritemplate

我创建了一个服务方法。这有OperationName和UriTemplate。我根据我的情况混淆了这两个名字。

    [OperationContract(Name="MyMethod")]
    [WebGet(ResponseFormat = WebMessageFormat.Json, UriTemplate = "/MyMethod/{p1}")]
    [Description("To get the data")]
    string InternalMethodName(string p1);

我的理解

操作合同名称,用于指定方法的名称,如别名。因此,如果我没有给出任何UriTemplate,则name属性中指定的名称将被视为名称,如下所示

Http://myServer/MyService/Service1.svc/MyMethod?p1=value

UriTemplate用于绑定paramer绑定,以便我们可以自定义参数映射。所以,如果我像/ MyMethod / {p1}那样添加UriTemplate,他的服务会帮助显示

http://myServer/MyService/Service1.svc/MyMthod/value

这是我的困惑。所以,如果我添加这两个名称没有影响?那么这是最好的做法。那么你能否告诉我确切的意思,哪种是最佳实践。

1 个答案:

答案 0 :(得分:0)

我得到了改变。实际上uriTemplate是掩盖输入和操作cotract名称是别名。这link帮了我