Перегрузка .NET WebMethods - возможно? - PullRequest
5 голосов
/ 13 октября 2010

У меня есть два веб-метода, которые я хочу перегрузить:

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

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

Я читал о перегрузке с помощью MessageName, однако не могу заставить это работать.Возможно ли это?

Ответы [ 2 ]

10 голосов
/ 27 апреля 2012

Конечно, это возможно!

Не забудьте изменить привязку WebServiceBinding [WebServiceBinding(ConformsTo = WsiProfiles.None)]

Попробуйте:

[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;
    }
}
1 голос
/ 13 октября 2010

Да, это должно быть возможно.Надеюсь, эта ссылка поможет: http://forums.asp.net/t/1162934.aspx

...