2012-01-19 33 views
0

我有拿到类型的paramater一个方法 - 异常
如何在异常类型的对象上使用SoapException方法?

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

有时方法获取的Exception对象,有时SoapException
的exeption是一种SoapException每次我想打印:ex.Detail.InnerText
但如果exException的类型。
所以在我认识到这个类型后,我该怎么做SoapException ex.Detail.InnerText

+0

为什么不使用两个函数重载,一个有具有的SoapException参数的异常参数和一个? – linkerro

回答

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); 

} 
相关问题