如何在Exception类型的对象上使用SoapException方法?

时间:2012-01-19 07:24:57

标签: c# .net oop exception polymorphism

我有一个获得类型参数的方法 - 异常

WriteException(Exception ex, int index, string s)
{
   // my code here...
}

有时候该方法会获得Exception个对象,有时会获得SoapException个 每次这个例外情况都是SoapException我想要打印:ex.Detail.InnerText
但如果ex的类型为Exception 所以在我识别出类型之后,我该怎么做SoapException ex.Detail.InnerText

1 个答案:

答案 0 :(得分:0)

WriteException(Exception ex, int index, string s)
{
    var soapEx = ex as SoapException;

    if(null != soapEx)
    {
      Console.WriteLine(soapEx.Detail.InnerText);
      return;
    }

    Console.WriteLine(ex.Message);

}

另一种可能的解决方案是使用dynamic关键字:

WriteException(Exception ex, int index, string s)
{
    dynamic soapEx = ex;

    Console.WriteLine(soapEx.Detail.InnerText);
    Console.WriteLine(ex.Message);

}