Imaginemos que tenemos que crear un servicio Web para una tarea determinada (para simplificar, digamos, realziar una suma), y dicha tarea debe trabajar con diferentes tipos de datos.

En una clase .NET podemos crear versiones sobrecargadas de un m├ętodo┬ácada una de las cuales tomar├í el tipo de datos pertinente, siendo el propio compilador┬áel que llamar├í a la versi├│n sobrecargada que convenga encada caso.

En el caso de un servicio Web a priori puede parecer que no seremos capaces de obtener el mismo efecto, ya que no podemos exponer dos m├ętodos Web con el mismo nombre. Sin embargo existe un atributo llamado MessageName que permite conseguir un efecto similar.

MessageName se utiliza para asignar alias a los m├ętodos Web que definamos, de forma que podemos identificar de manera ├║nica a cada uno de ellos, incluso aunque el nombre asignado a la funci├│n sea el mismo. De este modo, si queremos exponer como servicio Web una clase que posee un m├ętodo con varias sobrecargas s├│lo tenemos que emplear este atributo asign├índole un identificador diferente a cada una. Por ejemplo (sacado de la propia documentaci├│n de la plataforma .NET):

 public class Calculadora : WebService {
┬á┬á┬á // El valor de MessageName coge como valor por defect el del m├ętodo, en este caso 'Sumar'
    [WebMethod]
    public int Sumar(int i, int j) {
       return i + j;
    }  
    [WebMethod(MessageName="Sumar2")]
    public int Add(int i, int j, int k) {
       return i + j + k;
    }  
 }

Con esto conseguimos el efecto de m├ętodos Web sobrecargados sin demasiado esfuerzo.

💪🏻 ┬┐Este post te ha ayudado?, ┬┐has aprendido algo nuevo?
Pues NO te pido que me invites a un caf├ę... Te pido algo m├ís f├ícil y mucho mejor