When C# throws an exception, it can have an inner exception. What I want to do is get the inner-most exception, or in other words, the leaf exception that doesn\'t have an i
Looping through InnerExceptions is the only reliable way.
If the caught exception is an AggregateException, then GetBaseException() returns only the innermost AggregateException.
GetBaseException()
http://msdn.microsoft.com/en-us/library/system.aggregateexception.getbaseexception.aspx