我有一个获得类型参数的方法 - 异常
WriteException(Exception ex, int index, string s)
{
// my code here...
}
有时候该方法会获得Exception
个对象,有时会获得SoapException
个
每次这个例外情况都是SoapException
我想要打印:ex.Detail.InnerText
但如果ex
的类型为Exception
所以在我识别出类型之后,我该怎么做SoapException ex.Detail.InnerText
?
答案 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);
}