Hacía ya mucho tiempo que no posteaba nada, mas por falta de tiempo que por otra cosa, pero hoy os traigo una nueva entrada con un truco para C#.
Si habéis leido el título ya intuireis de que va el truco de hoy. Se trata, ni más ni menos de cómo obtener la lista de servicios publicados en un webservice.
Para que el método funcione lo único que necesitais es la url de un descriptor de webservice (acabará en ?wsdl o ?singleWSDL) para pasarla como parametro al método GetWsdlMethods que os describo a continuación.
private string[] GetWsdlMethods(string wsdlUrl)
{
List<string> services = new List<string>();
try
{
XmlTextReader myStreamReader = new XmlTextReader(wsdlUrl);
ServiceDescription wsdl =
ServiceDescription.Read(myStreamReader);
txtMethods.Clear();
foreach (PortType pt in wsdl.PortTypes)
{
services.Add(string.Format("PortType {0}", pt.Name));
services.Add("\r\n----------------------------------------");
foreach (Operation op in pt.Operations)
{
services.Add(string.Format("\r\n{0}", op.Name));
}
}
}
catch
{
services.Add("ERROR READING WDSL URL");
}
return services.ToArray();
}
Probadlo y dejar en los comentarios que os ha parecido.
Si tienes cualquier duda o comentario recuerda que puedes exponerlo aquí o bien mediante nuestro twitter y facebook.