小编msp*_*nts的帖子

使用查询字符串参数消除UriTemplate匹配的歧义

我正在使用WCF 4.0来创建REST-ful Web服务.我想要做的是根据查询字符串参数调用不同的服务方法UriTemplate.

例如,我有一个API,允许用户使用其驾驶执照或社会安全号码作为密钥来检索有关某人的信息.在我的ServiceContract/ interface中,我将定义两个方法:

[OperationContract]
[WebGet(UriTemplate = "people?driversLicense={driversLicense}")]
string GetPersonByLicense(string driversLicense);

[OperationContract]
[WebGet(UriTemplate = "people?ssn={ssn}")]
string GetPersonBySSN(string ssn);
Run Code Online (Sandbox Code Playgroud)

但是,当我使用这两种方法调用我的服务时,我得到以下异常:

UriTemplateTable不支持具有与模板'people?ssn = {ssn}'等效路径的多个模板,但具有不同的查询字符串,其中查询字符串不能通过文字值消除歧义.有关更多详细信息,请参阅UriTemplateTable的文档.

有没有办法做到这一点UriTemplates?这似乎是一种常见的情况.

非常感谢!

c# wcf uritemplate

22
推荐指数
3
解决办法
8199
查看次数

标签 统计

c# ×1

uritemplate ×1

wcf ×1