In modernen Programmiersprachen können Methoden überladen werden. Somit ist es möglich verschiedene Funktionalitäten abzubilden, ohne einen weiteren Methoden-Namen zu erstellen.
public string HelloWorld() { return "Hello"; } public string HelloWorld(string yourName) { return "Hello " + yourName; }
Möchte man diese Methoden allerdings für einen Webservice zur Verfügung stellen, endet dies mit einer unschönen Fehlermeldung.
Both X and Y use the message name ‘Z’. Use the MessageName property of the WebMethod custom attribute to specify unique message names for the methods.
Der Grund hierfür ist, dass Methodennamen innerhalb eines Webservice immer eindeutig sein müssen.
Dieses Problem kann mit dem Attribut MessageName gelöst werden.
[WebMethod (MessageName="HelloWorld")] public string HelloWorld() { return "Hello"; } [WebMethod (MessageName = "HelloWorldWithName")] public string HelloWorld(string yourName) { return "Hello " + yourName; }
Nun muss der Umstand, einen weiteren Methodennamen zu kreieren, allerdings wieder in Kauf genommen werden.