コード例 #1
0
        private static string GetExceptionItem(Exception ex, ExceptionItem item, ExceptionTextFormat format,
                                               int tabLevel)
        {
            string itemText = string.Empty;

            switch (item)
            {
            case ExceptionItem.Message:
                itemText = ex.Message;
                break;

            case ExceptionItem.StackTrace:
                if (!string.IsNullOrEmpty(ex.StackTrace))
                {
                    itemText = ex.StackTrace;
                    //move the source line to the top
                    const string inTag = " in ";
                    if (itemText.Contains(inTag))
                    {
                        itemText = itemText.Substring(itemText.LastIndexOf(inTag) + 4) +
                                   "\r\n" + itemText.Substring(0, itemText.LastIndexOf(inTag));
                    }
                    if (format == ExceptionTextFormat.HTML)
                    {
                        itemText = itemText.Replace(" at ", "<br>at ");
                    }
                }
                break;

            case ExceptionItem.Target:
                if (ex.TargetSite != null && !string.IsNullOrEmpty(ex.TargetSite.Name))
                {
                    itemText = ex.TargetSite.Name;
                }
                break;

            case ExceptionItem.Type:
                itemText = ex.GetType().ToString();
                break;
            }
            itemText = string.IsNullOrEmpty(itemText) ? "N/A" : itemText;
            if (format == ExceptionTextFormat.HTML)
            {
                itemText = "<ul><li>" + itemText;
                itemText.Replace("\r\n", "<br>");
                int len = itemText.Split(new[] { "<ul>" }, StringSplitOptions.None).Length - 1;
                for (int i = 0; i < len; i++)
                {
                    itemText += "</li></ul>";
                }
            }
            else
            {
                itemText = "\t" + itemText.Trim();
                itemText = itemText.Replace("\r\n", "\r\n\t\t ".PadRight(tabLevel, '\t'));
            }
            return(itemText);
        }
コード例 #2
0
 private static string GetExceptionItem(Exception ex, ExceptionItem item, ExceptionTextFormat format,
                                        int tabLevel)
 {
     string itemText = string.Empty;
     switch (item)
     {
         case ExceptionItem.Message:
             itemText = ex.Message;
             break;
         case ExceptionItem.StackTrace:
             if (!string.IsNullOrEmpty(ex.StackTrace))
             {
                 itemText = ex.StackTrace;
                 //move the source line to the top
                 const string inTag = " in ";
                 if (itemText.Contains(inTag))
                 {
                     itemText = itemText.Substring(itemText.LastIndexOf(inTag) + 4) +
                                "\r\n" + itemText.Substring(0, itemText.LastIndexOf(inTag));
                 }
                 if (format == ExceptionTextFormat.HTML)
                     itemText = itemText.Replace(" at ", "<br>at ");
             }
             break;
         case ExceptionItem.Target:
             if (ex.TargetSite != null && !string.IsNullOrEmpty(ex.TargetSite.Name))
                 itemText = ex.TargetSite.Name;
             break;
         case ExceptionItem.Type:
             itemText = ex.GetType().ToString();
             break;
     }
     itemText = string.IsNullOrEmpty(itemText) ? "N/A" : itemText;
     if (format == ExceptionTextFormat.HTML)
     {
         itemText = "<ul><li>" + itemText;
         itemText.Replace("\r\n", "<br>");
         int len = itemText.Split(new[] {"<ul>"}, StringSplitOptions.None).Length - 1;
         for (int i = 0; i < len; i++)
             itemText += "</li></ul>";
     }
     else
     {
         itemText = "\t" + itemText.Trim();
         itemText = itemText.Replace("\r\n", "\r\n\t\t ".PadRight(tabLevel, '\t'));
     }
     return itemText;
 }