Дополнительные параметры строки запроса в URITemplate в WCF?

Я разрабатываю некоторые УСПОКОИТЕЛЬНЫЕ сервисы в WCF 4.0. У меня есть метод как указано ниже:

[OperationContract]
    [WebGet(UriTemplate = "Test?format=XML&records={records}", ResponseFormat=WebMessageFormat.Xml)]
    public string TestXml(string records)
    {
        return "Hello XML";
    }

Таким образом, если я перемещаюсь по своему браузеру на http://localhost:8000/Service/Test?format=XML&records=10, затем все работает exepcted.

ОДНАКО я хочу смочь перейти на http://localhost:8000/Service/Test?format=XML и бросить "&records=10" часть URL. Но теперь, я получаю сервисную ошибку, так как URI не соответствует ожидаемому шаблону URI.

Таким образом, как я реализую значения по умолчанию для некоторых моих параметров строки запроса? Я хочу принять значение по умолчанию "записи" на 10, например, если та часть брошена строка запроса.

45
задан Shafique 3 June 2010 в 19:47
поделиться

1 ответ

Примечание: Этот вопрос устарел, пожалуйста, посмотрите другие ответы.


Похоже, это не поддерживается.

Однако Microsoft было известно об этой проблеме, и существует обходной путь:

Вы можете добиться желаемого эффекта, если опустив строку Query из UriTemplate в атрибуте WebGet или WebInvoke, и используя WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters из ваших обработчиков для проверки, устанавливать значения по умолчанию и т.д. для параметров запроса параметры.

https://connect.microsoft.com/VisualStudio/feedback/details/451296/

53
ответ дан 26 November 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: