J'ai une simple opération de service Web comme celui-ci:Comment puis-je extraire l'exception interne d'une exception de savon dans ASP.NET?
[WebMethod]
public string HelloWorld()
{
throw new Exception("HelloWorldException");
return "Hello World";
}
Et puis-je avoir une application client qui utilise le service Web, puis appelle l'opération. De toute évidence, il lancera une exception :-)
try
{
hwservicens.Service1 service1 = new hwservicens.Service1();
service1.HelloWorld();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
Dans mon bloc catch, ce que je voudrais faire est extrait le message de l'exception réelle à l'utiliser dans mon code. L'exception est pris une SoapException
, ce qui est bien, mais il est Message
propriété est comme ça ...
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Exception: HelloWorldException
at WebService1.Service1.HelloWorld() in C:\svnroot\Vordur\WebService1\Service1.asmx.cs:line 27
--- End of inner exception stack trace ---
... et le InnerException
est null
. Qu'est-ce que je voudrais faire est d'extraire la propriété Message
du InnerException
(le texte HelloWorldException
dans mon échantillon), quelqu'un peut-il aider avec cela? Si vous pouvez l'éviter, veuillez ne pas suggérer l'analyse de la propriété Message
du SoapException
.
Pourquoi créer une classe personnalisée si vous pouvez y parvenir sans un? S'il vous plaît examiner ma réponse sur ce post. – BornToCode