У меня есть простая операция веб-службы, подобная этой:
[WebMethod]
public string HelloWorld()
{
throw new Exception("HelloWorldException");
return "Hello World";
}
И затем у меня есть клиентское приложение, которое использует веб-службу, а затем вызывает операцию. Очевидно, что это вызовет исключение: -)
try
{
hwservicens.Service1 service1 = new hwservicens.Service1();
service1.HelloWorld();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
В моем блоке catch я хотел бы извлечь сообщение о фактическом исключении, чтобы использовать его в моем коде. Исключением является SoapException
, это нормально, но свойство Message
похоже на это...
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 ---
... и InnerException
- null
.
Что бы я хотел сделать, это извлечь свойство Message
в тексте InnerException
(текст HelloWorldException
в моем примере), может ли кто-нибудь помочь с этим? Если вы можете избежать этого, не предлагайте разбора свойства Message
SoapException
.