1.Обязательный параметр
В следующем примере определения URI
[WebGet(UriTemplate = "GetData?value={value}")]
[OperationContract]
string GetData(int value);
{
return string.Format("You entered: {0}, value);
}
параметр «значение» является необязательным по умолчанию, и если я его не передаю (вызов http://baseAddress/GetData
),переменная заполняется нулями.
Есть ли простой способ сделать этот параметр обязательным, может быть, атрибутом?Единственный способ, который я нашел, - это вручную проверить WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["value"] != null
.
2.HTTP 400 в неправильном формате
Еще я ненавижу то, что HTTP 500 возвращается для /GetData?value=emptyOrAnythingThatIsNotAnInteger
.Могу ли я вернуть HTTP 400 вместо этого?Конечно, без изменения типа на строку и проверки всего вручную.