OData и пользовательские методы WCF WebGet - PullRequest
4 голосов
/ 31 мая 2010

Я создал конечную точку 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

не работает (выдает мое исключение, так как параметр имеет значение null). Какой правильный формат URL (или UriTemplate) следует использовать, чтобы заставить параметр работать?

Единственные примеры, которые я нашел для odata и WebGet, имеют только метод-пример, который не имеет никаких параметров.

1 Ответ

7 голосов
/ 11 июня 2010

Правильный путь это: /myservice.svc/SplitString?testtext='mystringvalue'

Смотрите эту страницу для более подробной информации: http://msdn.microsoft.com/en-us/library/cc668788.aspx

...