解讀在Visual C# .NET中跟蹤和調(diào)試_.Net教程
推薦:談ASP.NET多附件上傳和附件編輯的實(shí)現(xiàn)在寫(xiě)這篇文章之前我也在Google上找到了很多有關(guān)多附件上傳的文章,有用ASP.NET實(shí)現(xiàn)的,也有用JSP、PHP等其它技術(shù)實(shí)現(xiàn)的,但基本前提都是事先通過(guò)js腳本來(lái)動(dòng)態(tài)創(chuàng)建DOM,然后上傳的時(shí)候在服務(wù)端做一下處理,有點(diǎn)類(lèi)似于163的郵件系統(tǒng)。文件上傳需要通過(guò)頁(yè)面的PO
本文介紹如何使用 Debug 和 Trace 類(lèi)。Microsoft .NET Framework 中提供了這兩個(gè)類(lèi)。在應(yīng)用程序開(kāi)發(fā)期間或部署到產(chǎn)品后,可以使用這兩個(gè)類(lèi)提供有關(guān)應(yīng)用程序性能的信息。這兩個(gè)類(lèi)只是 .NET Framework 中所提供配置功能的一部分。
要求下面的列表概括了推薦的硬件、軟件、網(wǎng)絡(luò)結(jié)構(gòu)以及所需的 Service Pack:
• Microsoft Windows 2000 或 Microsoft Windows XP
• Microsoft Visual C# .NET
本文還假定您熟悉程序調(diào)試。
方法說(shuō)明
在使用 Debug 類(lèi)創(chuàng)建一個(gè)示例一節(jié)中介紹的步驟演示了如何創(chuàng)建使用 Debug 類(lèi)以提供有關(guān)程序執(zhí)行信息的控制臺(tái)應(yīng)用程序。
當(dāng)程序運(yùn)行時(shí),您可以使用 Debug 類(lèi)的方法來(lái)生成消息,以幫助您監(jiān)視程序執(zhí)行順序、檢測(cè)故障或提供性能度量信息。默認(rèn)情況下,Debug 類(lèi)產(chǎn)生的消息顯示在 Visual Studio 集成開(kāi)發(fā)環(huán)境 (IDE) 的“輸出”窗口中。
該代碼示例使用 WriteLine 方法生成后面帶有行結(jié)束符的消息。當(dāng)您使用此方法生成消息時(shí),每條消息在“輸出”窗口中均顯示為單獨(dú)的一行。
如果使用 Debug 類(lèi)的 Assert 方法,那么只有在指定條件計(jì)算為 false 時(shí),“輸出”窗口才顯示消息。該消息還在一個(gè)模式對(duì)話框中向用戶顯示。該對(duì)話框包括消息、項(xiàng)目名和 Debug.Assert 語(yǔ)句編號(hào)。該對(duì)話框還包括下列三個(gè)命令按鈕:
• 終止:應(yīng)用程序停止運(yùn)行。
• 重試:應(yīng)用程序進(jìn)入調(diào)試模式。
• 忽略:應(yīng)用程序繼續(xù)。
用戶必須先單擊這些按鈕中的一個(gè),然后應(yīng)用程序才可以繼續(xù)。
您還可以指示從 Debug 類(lèi)向“輸出”窗口以外的目標(biāo)進(jìn)行輸出。Debug 類(lèi)有一個(gè)名為 Listeners 的集合,該集合包括一些 Listener 對(duì)象。
每個(gè) Listener 對(duì)象都監(jiān)視 Debug 輸出并使輸出指向指定的目標(biāo)。
Listener 集合中的每個(gè) Listener 都接收 Debug 類(lèi)生成的任何輸出。請(qǐng)使用 TextWriterTraceListener 類(lèi)定義 Listener 對(duì)象�?梢酝ㄟ^(guò) TextWriterTraceListener 類(lèi)的構(gòu)造函數(shù)為該類(lèi)指定目標(biāo)。
一些可能的輸出目標(biāo)包括: • 使用 System.Console.Out 屬性指定“控制臺(tái)”窗口作為輸出目標(biāo)。
• 使用 System.IO.File.CreateText("FileName.txt") 語(yǔ)句指定文本文件 (.txt) 作為輸出目標(biāo)。
創(chuàng)建 TextWriterTraceListener 對(duì)象后,必須將該對(duì)象添加到 Debug.Listeners 集合才可接收調(diào)試輸出。
使用 Debug 類(lèi)創(chuàng)建一個(gè)示例1. 啟動(dòng) Visual Studio .NET。
2. 新建一個(gè)名為 conInfo 的新 Visual C# .NET 控制臺(tái)應(yīng)用程序項(xiàng)目。將創(chuàng)建 Class1。
3. 在 Class1 的頂部添加以下名稱(chēng)空間。
using System.Diagnostics;
4. 要初始化變量以使其包含產(chǎn)品的相關(guān)信息,請(qǐng)將下面的聲明語(yǔ)句添加到 Main 方法:
string sProdName = "Widget";
int iUnitQty = 100;
double dUnitCost = 1.03;
5. 將類(lèi)生成的消息指定為 WriteLine 方法的第一個(gè)輸入?yún)?shù)。按 CTRL+ALT+O 組合鍵以確保“輸出”窗口可見(jiàn)。
Debug.WriteLine("Debug Information-Product Starting ");
6. 為了清晰易讀,請(qǐng)使用 Indent 方法在“輸出”窗口中縮進(jìn)后面的消息:
Debug.Indent();
7. 要顯示所選變量的內(nèi)容,請(qǐng)使用 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 方法顯示現(xiàn)有對(duì)象的名稱(chēng)空間和類(lèi)名稱(chēng)。例如,下面的代碼在“輸出”窗口中顯示 System.Xml.XmlDocument 命名空間:
System.Xml.XmlDocument oxml = new System.Xml.XmlDocument();
Debug.WriteLine(oxml);
9. 要整理輸出,可以包括一個(gè)類(lèi)別作為 WriteLine 方法的第二個(gè)可選的輸入?yún)?shù)。如果您指定一個(gè)類(lèi)別,則“輸出”窗口消息的格式為“類(lèi)別:消息”。例如,以下代碼的第一行在“輸出”窗口中顯示“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 類(lèi)的 WriteLineIf 方法將指定條件計(jì)算為 true 時(shí),“輸出”窗口才可以顯示消息。將要計(jì)算的條件是 WriteLineIf 方法的第一個(gè)輸入?yún)?shù)。WriteLineIf 的第二個(gè)參數(shù)是僅在第一個(gè)參數(shù)的條件計(jì)算為真時(shí)才顯示的消息。
Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear");
Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear");
11. 使用 Debug 類(lèi)的 Assert 方法,使“輸出”窗口僅在指定條件計(jì)算為 false 時(shí)才顯示消息:
Debug.Assert(dUnitCost > 1, "Message will NOT appear");
Debug.Assert(dUnitCost < 1, "Message will appear since dUnitcost < 1 is false");
12. 為“控制臺(tái)”窗口 (tr1) 和名為 Output.txt (tr2) 的文本文件創(chuàng)建 TextWriterTraceListener 對(duì)象,然后將每個(gè)對(duì)象添加到 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. 為了清晰易讀,請(qǐng)使用 Unindent 方法去除 Debug 類(lèi)為后續(xù)消息生成的縮進(jìn)。當(dāng)您將 Indent 和 Unindent 兩種方法一起使用時(shí),讀取器可以將輸出分成組。
Debug.Unindent();
Debug.WriteLine("Debug Information-Product Ending");
14. 為了確保每個(gè) Listener 對(duì)象收到它的所有輸出,請(qǐng)為 Debug 類(lèi)緩沖區(qū)調(diào)用 Flush 方法:
Debug.Flush();
使用 Trace 類(lèi) 您還可以使用 Trace 類(lèi)生成監(jiān)視應(yīng)用程序執(zhí)行的消息。Trace 和 Debug 類(lèi)共享大多數(shù)相同的方法來(lái)生成輸出,這些方法包括: • WriteLine
• WriteLineIf
• Indent
• Unindent
• Assert
• Flush
您可以在同一應(yīng)用程序中分別或同時(shí)使用 Trace 和 Debug 類(lèi)。在一個(gè)“調(diào)試解決方案配置”項(xiàng)目中,Trace 和 Debug 兩種輸出均為活動(dòng)狀態(tài)。該項(xiàng)目從這兩個(gè)類(lèi)為 Listener 對(duì)象生成輸出。但是,“發(fā)布解決方案配置”項(xiàng)目?jī)H從 Trace 類(lèi)生成輸出。該“發(fā)布解決方案配置”項(xiàng)目忽略任何 Debug 類(lèi)方法調(diào)用。
分享:小議程序員的信仰老婆經(jīng)�?湮矣邢敕�,得益于老婆大人的鼓勵(lì),我才打算將自己平時(shí)所想,所總結(jié)的東西寫(xiě)下來(lái)。人是需要不斷總結(jié)的,有總結(jié)才會(huì)有進(jìn)步。所謂總結(jié),并不一定是多么高深的道理,多么復(fù)雜的推論,也并不一定要長(zhǎng)篇大論。有時(shí),一句話,或是一個(gè)瞬間,會(huì)讓你明白很
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- VS 2008和.NET 3.5 Beta2新特性介紹
- 如何實(shí)現(xiàn)ASP.NET網(wǎng)站個(gè)性化
- 淺談ADO.NET Entity Framework存取數(shù)據(jù)庫(kù)中圖片
- 解讀ASP.NET開(kāi)發(fā)的編程習(xí)慣
- .NET嵌入IronPython交互詳解
- .net編程之如何綁定到ADO.NET數(shù)據(jù)源
- Json數(shù)據(jù)轉(zhuǎn)換list對(duì)象實(shí)現(xiàn)思路及代碼
- ASP.NET 2.0的導(dǎo)航控件treeview和menu的實(shí)例
- .net 頁(yè)面指定區(qū)域打印的方法
- aspx頁(yè)面彈出窗口代碼大全
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-解讀在Visual C# .NET中跟蹤和調(diào)試
。