Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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());
        }