/// <summary> /// Effectue le rendu de l'exception /// </summary> /// <param name="ex">L'exception.</param> /// <param name="sb">Le StringBuilder sur lequel effectuer le rendu.</param> /// <param name="indentation">L'indentation.</param> private void RenderReflectionTypeLoadException(ReflectionTypeLoadException ex, StringBuilder sb, int indentation) { sb.Append(' ', indentation * 2); sb.Append(ex.GetType().FullName); sb.Append(": "); sb.Append(ex.Message); sb.Append(Environment.NewLine); sb.Append(' ', indentation * 2); sb.Append(ex.StackTrace); sb.Append(Environment.NewLine); sb.Append("LoaderExceptions:"); sb.Append(Environment.NewLine); foreach (var loaderEx in ex.LoaderExceptions) { var subLoaderEx = loaderEx as ReflectionTypeLoadException; if (subLoaderEx != null) { RenderReflectionTypeLoadException(subLoaderEx, sb, indentation + 1); } else { sb.Append(' ', (indentation + 1) * 2); sb.Append(loaderEx.ToString()); sb.Append(Environment.NewLine); } } sb.Append(Environment.NewLine); }
private String ToString(ReflectionTypeLoadException ex) { StringBuilder result = new StringBuilder(); if (ex.Message == null || ex.Message.Length <= 0) { result.AppendLine(ex.GetType().FullName); } else { result.AppendLine(ex.GetType().FullName + ": " + ex.Message); } if (ex.InnerException != null) { result.AppendLine(" ---> " + ex.InnerException); } if (ex.StackTrace != null) { result.AppendLine(Environment.NewLine + ex.StackTrace); } if (ex.LoaderExceptions != null) { result.AppendFormat("{0} LoaderExceptions\r\n", ex.LoaderExceptions.Length); result.AppendLine("----------"); for (int i = 0; i < ex.LoaderExceptions.Length; i++) { result.AppendFormat("Loader Exception {0}: {1}\r\n", i + 1, ex.LoaderExceptions[i]); } } return(result.ToString()); }