Vous pouvez utiliser l'approche suivante:
Chaque méthode Web retourne toujours une sorte de WebMethodResult.
Par exemple
[WebMethod]
public WebMethodResult DoSomethng(guid p_userId)
{
IfMethodIsSuccessful()
{
WebMethodResultSuccess successResult = new WebMethod();
// Add required information into web method result object
return successResult;
}
else
{
WebMethodResultFailure failedResult = new WebMethodResultFailure();
return failedResult;
}
}
idée ici est que chaque fois que la méthode Web est appelée, elle retourne une sorte d'objet.
Dans ce cas, WebMethodResult sera la classe parent et l'échec WebMethodResultSuccess et WebMethodResult héritera de la classe parente. Au lieu de IsMethodIsSuccessfull, vous pouvez ajouter votre propre logique, placer tout dans un bloc try catch et renvoyer les résultats de réussite/échec. Au lieu de IsMethodIsSuccessfull.
Si vous appelez les méthodes Web à partir du script java ou de jquery, l'exception ne sera pas renvoyée au client à moins que vous n'utilisiez SOAP ou une sorte d'alternative. En renvoyant des objets personnalisés, vous pouvez les lire via javascrip/jquery et afficher le message approprié à l'utilisateur.
Espérons que cela a du sens.
Comment est-il possible d'appeler une méthode sur un Webservice sans donner les bons paramètres? – KroaX
@KroaX c'est possible. Alors que la plupart des appels à un webservice seront vérifiés au moment de la compilation, cela ne s'applique pas, par exemple, à un client javascript accédant au service. – TimothyP
Voulez-vous l'attraper sur le serveur ou sur le client? –