Нет, не совсем - потому что строковый параметр searchType
может быть НЕДЕЙСТВИТЕЛЕН - поэтому у вас нет никакого способа различить два шаблона URL. Было бы иначе, если бы вы использовали ненулевой тип, например INT
или что-то еще - тогда вы (и среда выполнения .NET) могли бы разделить два шаблона URL (основываясь на том факте, присутствует ли INT ).
Что вам нужно сделать, это просто проверить, является ли searchType
пустым или NULL в вашем GetSearchResults
методе, и действовать соответственно.
[OperationContract]
[WebGet(UriTemplate = "/searchresults/{searchTerm}/{searchType}", ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare)]
Message GetSearchResults(string searchTerm, string searchType);
и в вашей реализации:
public Message GetSearchResults(string searchTerm, string searchType)
{
if(!string.IsNullOrEmpty(searchType))
{
// search with searchType
}
else
{
// search without searchType
}
......
}