¿Hay alguna manera de escribir un código LINQ de "mano corta" para caminar a todos los niveles de InnerException (s) of Exception arrojado? Preferiría escribirlo en lugar de llamar a una función de extensión (como a continuación) o heredar la clase Exception
.Obteniendo todos los mensajes de InnerException (s)?
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;
}
};
¿Puedo preguntarle por qué desea utilizar algo más que los métodos de extensión? Su código se ve bien para mí, y es reutilizable en cualquier lugar de su código. – ken2k
@ ken2k: Aunque no le gustaría construir los mensajes de la forma en que lo tiene ahora mismo ... –
@JeffMercado Sí, pero ¿cuál es el problema con el concepto de "método de extensiones"? – ken2k