2010-10-13 5 views
5

Tengo dos métodos web que deseo sobrecarga:.NET Overload WebMethods - ¿Posible?

<WebMethod()> _ 
Public Function GetProject(ByVal id As Int32) As Project 

<WebMethod(MessageName:="GetProjects")> _ 
Public Function GetProject(ByVal filter As String) As Projects 

que leer acerca de la sobrecarga usando MessageName, sin embargo no puedo conseguir que esto funcione. es posible?

Respuesta

10

¡Por supuesto que es posible!

no se olvide de cambiar el WebServiceBinding [WebServiceBinding(ConformsTo = WsiProfiles.None)]

intente esto:

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.None)] 
[System.ComponentModel.ToolboxItem(false)]  
public class Service : System.Web.Services.WebService 
{ 

    [WebMethod(MessageName = "GetTime")] 
    public string GetTime() 
    { 
     return DateTime.Now.ToShortTimeString(); 
    } 

    [WebMethod(MessageName = "GetTimeWithName")] 
    public string GetTime(string userName) 
    { 
     return "Hello " + userName + " it is " + DateTime.Now.ToShortTimeString(); 
    } 

    [WebMethod(MessageName = "GetTimeWithNameAndRepetitions")] 
    public string GetTime(string userName, int repetitions) 
    { 
     string response = string.Empty; 
     for(int i=0; i<repetitions; i++) 
      response += "Hello " + userName + " it is " + DateTime.Now.ToShortTimeString() + "\n"; 
     return response; 
    } 
} 
Cuestiones relacionadas