Je sais que cette question a déjà été abordée, mais j'ai un service qui renvoie une chaîne de caractères comme ceci.
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class MyService : System.Web.Services.WebService
{
[WebMethod]
public string Hello()
{
System.Threading.Thread.Sleep(10000);
return "Hello User";
}
}
J'ai lu de nombreux exemples qui disent que je dois appeler la méthode comme ceci :
MyService my = new MyService();
AsyncCallback async = new AsyncCallback(callback);
my.BeginHello();
Console.WriteLine("Called webservice");
Le problème est que lorsque j'ai ajouté la référence, je n'ai pas pu obtenir la méthode BeginHello. Tout ce que j'ai vu, c'est la méthode HelloAsync. Je l'ai donc utilisé comme ceci dans mon application console.
MyService my = new MyService();
AsyncCallback async = new AsyncCallback(callback);
my.HelloAsync();
Console.WriteLine("Called webservice");
et défini une méthode de rappel privée comme ceci
private void callback(IAsyncResult res)
{
Console.Write("Webservice finished executing.");
}
En faisant cela, j'obtiens une erreur comme celle-ci :
A le champ non statique, la méthode ou la propriété 'AsyncWebserviceCall.Program.callback(System.IAsyncResult)
Pourquoi je n'obtiens pas la méthode BeginHello et pourquoi j'obtiens cette erreur comme ci-dessus ?
Merci pour votre temps.