Чи є спосіб написати код "короткої руки" у стилі LINQ для прогулянки на всі рівні викидів InnerException (s)? Я вважав за краще писати його на місці, а не викликати функцію розширення (як показано нижче) або успадковувати Exceptionклас.
static class Extensions
{
public static string GetaAllMessages(this Exception exp)
{
string message = string.Empty;
Exception innerException = exp;
do
{
message = message + (string.IsNullOrEmpty(innerException.Message) ? string.Empty : innerException.Message);
innerException = innerException.InnerException;
}
while (innerException != null);
return message;
}
};