Click here to Skip to main content
15,884,473 members
Articles / Web Development
Article

Method Overloading in WebServices

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
11 Oct 2013CPOL2 min read 5.5K   1  
Web services are also classes just like any other .NET classes. Nevertheless they have methods marked as WebMethods that can be exposed by the

This articles was originally at wiki.asp.net but has now been given a new home on CodeProject. Editing rights for this article has been set at Bronze or above, so please go in and edit and update this article to keep it fresh and relevant.

Web services are also classes just like any other .NET classes. Nevertheless they have methods marked as WebMethods that can be exposed by the WebServices to be consumed by the outside world. Apart from these WebMethods they can also have normal methods like any other classes have.


Since a web service is a class it can utilize all the OO features like method overloading. However to use this feature on WebMethods we need to do something more that is explained in this article.

Creating WebMethods:

Let us create a simple WebService that has the following overloaded methods:


public int AddNumbers(int a, int b)

public int AddNumbers(int a, int b, int c)

public decimal AddNumbers(decimal a, decimal b)

All these three methods return variants of a Added numbers to the WebClient. Let us now mark the methods as Web Methods. To achieve this apply the [WebMethod] attribute to the public methods.

[WebMethod]

public int AddNumbers(int a, int b) {     

    return a+b;

}

[WebMethod]

public int AddNumbers(int a, int b, int c) {     

    return a+b+c;

}

[WebMethod]

public decimal AddNumbers(decimal a, decimal b) {    

    return a+b;

}

This would compile fine. Run the WebService in the browser. That should give an error saying that the AddNumbers() methods use the same message name 'AddNumbers' and asking to use the MessageName property of the WebMethod.

Adding the MessageName property:

Add the MessageName property to the WebMethod attribute as shown below:

[WebMethod]

public int AddNumbers(int a, int b) {   

   return "a+b";

}

[WebMethod (MessageName="AddThreeNumbers")]

public int AddNumbers(int a, int b, int c) {   

    return a + b + c;

}

[WebMethod (MessageName="AddDecimal")]

public decimal AddNumbers(decimal a, decimal b) {  

   return a+b;

}

Now compile the WebService and run in the browser. You can see that the first method is displayed as AddNumbers wherein for the second and third method the alias we set using the MessageName property is displayed

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
United States United States
The ASP.NET Wiki was started by Scott Hanselman in February of 2008. The idea is that folks spend a lot of time trolling the blogs, googlinglive-searching for answers to common "How To" questions. There's piles of fantastic community-created and MSFT-created content out there, but if it's not found by a search engine and the right combination of keywords, it's often lost.

The ASP.NET Wiki articles moved to CodeProject in October 2013 and will live on, loved, protected and updated by the community.
This is a Collaborative Group

754 members

Comments and Discussions

 
-- There are no messages in this forum --