解讀在Visual C# .NET中跟蹤和調試_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:談ASP.NET多附件上傳和附件編輯的實現
      在寫這篇文章之前我也在Google上找到了很多有關多附件上傳的文章,有用ASP.NET實現的,也有用JSP、PHP等其它技術實現的,但基本前提都是事先通過js腳本來動態創建DOM,然后上傳的時候在服務端做一下處理,有點類似于163的郵件系統。文件上傳需要通過頁面的PO

      本文介紹如何使用 Debug 和 Trace 類。Microsoft .NET Framework 中提供了這兩個類。在應用程序開發期間或部署到產品后,可以使用這兩個類提供有關應用程序性能的信息。這兩個類只是 .NET Framework 中所提供配置功能的一部分。

      要求下面的列表概括了推薦的硬件、軟件、網絡結構以及所需的 Service Pack:

      • Microsoft Windows 2000 或 Microsoft Windows XP

      • Microsoft Visual C# .NET

      本文還假定您熟悉程序調試。

      方法說明

      在使用 Debug 類創建一個示例一節中介紹的步驟演示了如何創建使用 Debug 類以提供有關程序執行信息的控制臺應用程序。

      當程序運行時,您可以使用 Debug 類的方法來生成消息,以幫助您監視程序執行順序、檢測故障或提供性能度量信息。默認情況下,Debug 類產生的消息顯示在 Visual Studio 集成開發環境 (IDE) 的“輸出”窗口中。

      該代碼示例使用 WriteLine 方法生成后面帶有行結束符的消息。當您使用此方法生成消息時,每條消息在“輸出”窗口中均顯示為單獨的一行。

      如果使用 Debug 類的 Assert 方法,那么只有在指定條件計算為 false 時,“輸出”窗口才顯示消息。該消息還在一個模式對話框中向用戶顯示。該對話框包括消息、項目名和 Debug.Assert 語句編號。該對話框還包括下列三個命令按鈕:

      • 終止:應用程序停止運行。

      • 重試:應用程序進入調試模式。

      • 忽略:應用程序繼續。

      用戶必須先單擊這些按鈕中的一個,然后應用程序才可以繼續。

      您還可以指示從 Debug 類向“輸出”窗口以外的目標進行輸出。Debug 類有一個名為 Listeners 的集合,該集合包括一些 Listener 對象。

      每個 Listener 對象都監視 Debug 輸出并使輸出指向指定的目標。

      Listener 集合中的每個 Listener 都接收 Debug 類生成的任何輸出。請使用 TextWriterTraceListener 類定義 Listener 對象。可以通過 TextWriterTraceListener 類的構造函數為該類指定目標。

      一些可能的輸出目標包括: • 使用 System.Console.Out 屬性指定“控制臺”窗口作為輸出目標。

      • 使用 System.IO.File.CreateText("FileName.txt") 語句指定文本文件 (.txt) 作為輸出目標。

      創建 TextWriterTraceListener 對象后,必須將該對象添加到 Debug.Listeners 集合才可接收調試輸出。

      使用 Debug 類創建一個示例1. 啟動 Visual Studio .NET。

      2. 新建一個名為 conInfo 的新 Visual C# .NET 控制臺應用程序項目。將創建 Class1。

      3. 在 Class1 的頂部添加以下名稱空間。

      using System.Diagnostics;

      4. 要初始化變量以使其包含產品的相關信息,請將下面的聲明語句添加到 Main 方法:

      string sProdName = "Widget";

      int iUnitQty = 100;

      double dUnitCost = 1.03;

      5. 將類生成的消息指定為 WriteLine 方法的第一個輸入參數。按 CTRL+ALT+O 組合鍵以確保“輸出”窗口可見。

      Debug.WriteLine("Debug Information-Product Starting ");

      6. 為了清晰易讀,請使用 Indent 方法在“輸出”窗口中縮進后面的消息:

      Debug.Indent();

      7. 要顯示所選變量的內容,請使用 WriteLine 方法,如下所示:

      Debug.WriteLine("The product name is " + sProdName);

      Debug.WriteLine("The available units on hand are" + iUnitQty.ToString());

      Debug.WriteLine("The per unit cost is " + dUnitCost.ToString());

      8. 您還可以使用 WriteLine 方法顯示現有對象的名稱空間和類名稱。例如,下面的代碼在“輸出”窗口中顯示 System.Xml.XmlDocument 命名空間:

      System.Xml.XmlDocument oxml = new System.Xml.XmlDocument();

      Debug.WriteLine(oxml);

      9. 要整理輸出,可以包括一個類別作為 WriteLine 方法的第二個可選的輸入參數。如果您指定一個類別,則“輸出”窗口消息的格式為“類別:消息”。例如,以下代碼的第一行在“輸出”窗口中顯示“Field:The product name is Widget”:

      Debug.WriteLine("The product name is " + sProdName,"Field");

      Debug.WriteLine("The units on hand are" + iUnitQty,"Field");

      Debug.WriteLine("The per unit cost is" + dUnitCost.ToString(),"Field");

      Debug.WriteLine("Total Cost is " + (iUnitQty * dUnitCost),"Calc");

      10. 僅在使用 Debug 類的 WriteLineIf 方法將指定條件計算為 true 時,“輸出”窗口才可以顯示消息。將要計算的條件是 WriteLineIf 方法的第一個輸入參數。WriteLineIf 的第二個參數是僅在第一個參數的條件計算為真時才顯示的消息。

      Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear");

      Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear");

      11. 使用 Debug 類的 Assert 方法,使“輸出”窗口僅在指定條件計算為 false 時才顯示消息:

      Debug.Assert(dUnitCost > 1, "Message will NOT appear");

      Debug.Assert(dUnitCost < 1, "Message will appear since dUnitcost < 1 is false");

      12. 為“控制臺”窗口 (tr1) 和名為 Output.txt (tr2) 的文本文件創建 TextWriterTraceListener 對象,然后將每個對象添加到 Debug Listeners 集合中:

      TextWriterTraceListener tr1 = new TextWriterTraceListener(System.Console.Out);

      Debug.Listeners.Add(tr1);

      TextWriterTraceListener tr2 = new TextWriterTraceListener(System.IO.File.CreateText("Output.txt"));

      Debug.Listeners.Add(tr2);

      13. 為了清晰易讀,請使用 Unindent 方法去除 Debug 類為后續消息生成的縮進。當您將 Indent 和 Unindent 兩種方法一起使用時,讀取器可以將輸出分成組。

      Debug.Unindent();

      Debug.WriteLine("Debug Information-Product Ending");

      14. 為了確保每個 Listener 對象收到它的所有輸出,請為 Debug 類緩沖區調用 Flush 方法:

      Debug.Flush();

      使用 Trace 類 您還可以使用 Trace 類生成監視應用程序執行的消息。Trace 和 Debug 類共享大多數相同的方法來生成輸出,這些方法包括: • WriteLine

      • WriteLineIf

      • Indent

      • Unindent

      • Assert

      • Flush

      您可以在同一應用程序中分別或同時使用 Trace 和 Debug 類。在一個“調試解決方案配置”項目中,Trace 和 Debug 兩種輸出均為活動狀態。該項目從這兩個類為 Listener 對象生成輸出。但是,“發布解決方案配置”項目僅從 Trace 類生成輸出。該“發布解決方案配置”項目忽略任何 Debug 類方法調用。

       

      分享:小議程序員的信仰
      老婆經?湮矣邢敕ǎ靡嬗诶掀糯笕说墓膭,我才打算將自己平時所想,所總結的東西寫下來。人是需要不斷總結的,有總結才會有進步。所謂總結,并不一定是多么高深的道理,多么復雜的推論,也并不一定要長篇大論。有時,一句話,或是一個瞬間,會讓你明白很

      來源:模板無憂//所屬分類:.Net教程/更新時間:2009-08-14
      相關.Net教程