OData和自定义WCF WebGet方法

时间:2010-05-31 08:10:07

标签: c# .net wcf odata webget

我已经创建了一个OData端点(使用实体框架,WCF数据服务)

并添加了一个自定义测试WebGet测试方法,如下所示:

    [WebGet(UriTemplate = "{text}")]
    public IQueryable<string> SplitString(string text)
    {
        if (text == null) throw new DataServiceException("text not specified");
        var result = (from s in text.Split('-') orderby s select s);
        return result.AsQueryable();
    }

和配置行:

    config.SetServiceOperationAccessRule("SplitString", ServiceOperationRights.All);

但是,无论我如何指定url,我都无法填写文本参数。 (它总是为空)。

所以:
http://localhost/myservice.svc/SplitString/testtext

不起作用(因为param为null,它会抛出我的异常)。 应该使用什么样的正确url格式(或UriTemplate)来使参数起作用?

我发现odata和WebGet的唯一例子只有一个没有任何参数的示例方法。

1 个答案:

答案 0 :(得分:7)

正确的方法是: /myservice.svc/SplitString?testtext='mystringvalue'

有关详细信息,请参阅此页面: http://msdn.microsoft.com/en-us/library/cc668788.aspx