C# 哪些是asp.net C调试包装器

C# 哪些是asp.net C调试包装器,c#,asp.net,C#,Asp.net,没有收到任何确切的答案,因此我不得不接受我的答案。。。参见下面的代码 using System; using System.Text.RegularExpressions; using System.Data; using System.Collections.Specialized; using System.Text; namespace YourDebug.Name.Space { /// <summary> ///Debugs passed objects and ret

没有收到任何确切的答案,因此我不得不接受我的答案。。。参见下面的代码

using System;
using System.Text.RegularExpressions;
using System.Data;
using System.Collections.Specialized;
using System.Text;

namespace YourDebug.Name.Space
{

/// <summary>
///Debugs passed objects and returns ready formatted html with the objects values
/// </summary>
public class HtmlDebugger
{
    public static string DumpDataSet(string msg, DataSet ds)
    {
        StringBuilder sb = new StringBuilder();

        sb.Append("<p> START " + msg + "</p>");
        if (ds == null)
            return msg + " null ds passed ";

        if (ds.Tables == null || ds.Tables.Count == 0)
            return msg + " no tables in ds ";

            sb.Append("<p> DEBUG START --- " + msg + "</p>");            
            foreach (System.Data.DataTable dt in ds.Tables)
            {
                sb.Append("================= My TableName is  " +
                dt.TableName + " ========================= START");
                sb.Append("<table>\n");
                int colNumberInRow = 0;
                foreach (System.Data.DataColumn dc in dt.Columns)
                {
                    sb.Append(" <th>  ");
                    sb.Append(" |" + colNumberInRow + "| ");
                    sb.Append(dc.ColumnName + " </th> ");
                    colNumberInRow++;
                } //eof foreach (DataColumn dc in dt.Columns)
                int rowNum = 0;
                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    string strBackGround = String.Empty;
                    if (rowNum% 2 == 0)
                        strBackGround = " bgcolor=\"#D2D2D2\" "; 



                    sb.Append("\n " + rowNum + "<tr " + strBackGround + " >");
                    int colNumber = 0;
                    foreach (System.Data.DataColumn dc in dt.Columns)
                    {
                        sb.Append("<td> |" + colNumber + "| ");
                        sb.Append(dr[dc].ToString() + " </td>");
                        colNumber++;
                    } //eof foreach (DataColumn dc in dt.Columns)
                    rowNum++;
                    sb.Append("</tr>");
                }    //eof foreach (DataRow dr in dt.Rows)
                sb.Append(" \n");
                sb.Append("</table>");
            }    //eof foreach (DataTable dt in sb.Append.Tables)
            sb.Append("<p> DEBUG END--- " + msg + "</p>");            

            return sb.ToString();

    }//eof method  


    public static string DumpMsgList(string msg, 
    System.Collections.Generic.List<GenApp.Dh.Msg> listMsgs)
    {

        System.Text.StringBuilder echo = new System.Text.StringBuilder();
        if (listMsgs == null)
            return "null listMsgs passed for debugging ";

        if (listMsgs.Count == 0)
            return "listMsgs.Count == 0"; 



        echo.Append("<table>");
        for (int msgCounter = 0; msgCounter < listMsgs.Count; msgCounter++)
        {
            GenApp.Dh.Msg objMsg = listMsgs[msgCounter];
            string strBackGround = String.Empty;
            if (msgCounter % 2 == 0)
                strBackGround = " bgcolor=\"#D2D2D2\" "; 

            echo.Append("<tr" + strBackGround + ">");
            echo.Append("<td>msg.MsgKey</td> <td> " + objMsg.MsgKey + "</td>");
            echo.Append("<td>msg.MsgId</td><td>" + objMsg.MsgId + "</td>");
            echo.Append("</tr>");
        } //eof foreach 
        echo.Append("</table>");
        return echo.ToString();


    } //eof method 

    public static string DumpIDataReader(string msg, IDataReader rdr)
    {
        StringBuilder sb = new StringBuilder();

        if (rdr == null)
            return " <p> IDataReader rds is null </p>";


            sb.Append("DEBUG START ---" + msg);
            sb.Append("<table>");
            int counter = 0; 
            while (rdr.Read() )
            {
                string strBackGround = String.Empty;
                if (counter % 2 == 0)
                    strBackGround = " bgcolor=\"#3EBDE8\" "; 

                sb.Append("<tr" + strBackGround + ">");
                for (int i = 0; i < rdr.FieldCount; i++)
                {
                    sb.Append("<td>");
                    sb.Append(rdr[i].ToString() + " ");
                    sb.Append("<td>");
                } //eof for 
                sb.Append("</br>");
                sb.Append("</tr>");
                counter++; 
            }
            sb.Append("<table>");
            sb.Append("DEBUG END ---" + msg);


            return sb.ToString();        
    } //eof method 


    public static string DumpListDictionary(string msg , 
    ListDictionary list)
    {
      if (list == null)
        return "<p> null list passed </p>";

      if (list.Count == 0)
        return "<p> list.Count = 0 </p> "; 


          System.Text.StringBuilder sb = new System.Text.StringBuilder();

          sb.Append("<p> START DUMP " + msg + " </p>");
          sb.Append("<table>");

          int counter = 0; 
          foreach (object key in list.Keys)
          {
            string strBackGround = String.Empty;
            if (counter % 2 == 0)
              strBackGround = " bgcolor=\"#D2D2D2\" ";

            sb.Append("<tr" + strBackGround + "><td> key - </td><td> " + 
            key.ToString());
            sb.Append("</td><td>===</td><td>value - </td><td> " + list[key] + 
            "</td></br></tr>");
            counter++;
          } //eof foreach 

          sb.Append("</table>");
          sb.Append("<p> END DUMP " + msg + " </p>");
      return sb.ToString();
    } //eof method 

} //eof class 

}//eof namespace

我只是希望有人也能建议其他选项,例如

你似乎通过引用毫无意义地传递了很多东西。我建议您阅读-我怀疑您可能不理解ref的意思。如果您将缩进改为2个空格,并删除了许多注释掉的语句,那么代码在这里会工作得更好。还要了解control-]与大括号匹配,无需注释结束大括号以及突出显示。感谢您的注释!我想我应该从可回音对象中删除ref。。。我想为userObj保留它,因为它保存对象,这些对象将在调试期间填充以供进一步使用…****如果您将缩进更改为2个空格,代码会工作得更好Richard,我的VS设置中有1\t=2个空格。它在VS中看起来真的好很多。**还了解到control-]与大括号匹配,无需注释结束大括号以及在我的FI键盘中突出显示的是Ctrl+å-使用//eof方法的原因是我对这种类型的错误真的视而不见,甚至没有颜色对我有效。。。