Ajax Autocomplete Webservice Call - Service Method, estou chamando isso corretamente?
-
09-06-2019 - |
Pergunta
Ok, então meu método no meu webservice requer que um tipo seja passado, ele é chamado na propriedade ServiceMethod do AutoCompleteExtender, estou confuso sobre como devo fazer isso, então chamei assim:
ServiceMethod="DropDownLoad<<%=(typeof)subCategory%>>"
onde subCategory é uma propriedade de página semelhante a esta:
protected SubCategory subCategory
{
get
{
var subCategory = NHibernateObjectHelper.LoadDataObject<SubCategory>(Convert.ToInt32(Request.QueryString["SCID"]));
return subCategory;
}
}
Solução
Não acho que seja possível chamar um método genérico em um serviço da web.
Se você observar a descrição do serviço de dois métodos idênticos, um genérico e outro não:
[WebMethod]
public string[] GetSearchList(string prefixText, int count)
{
}
[WebMethod]
public string[] GetSearchList2<T>(string prefixText, int count)
{
}
Eles são idênticos.Parece que tanto o SOAP 1.x quanto o HTTP POST não permitem esse tipo de operação.
Outras dicas
Você poderia usar o parâmetro ContextKey do AutoCompleteExtender para usar um único método da web que aceitasse um nome de tipo como sua chave de contexto.Então, no método web, use reflexão e esse parâmetro para retornar a string desejada[].