日韩免费在线观看成人,骚碰成人免费视频,电影院 摸 湿 嗯…啊h

    1. <span id="um726"><blockquote id="um726"></blockquote></span>

        <span id="um726"><blockquote id="um726"></blockquote></span>
        1. 您的位置:首頁>世界杯 >內(nèi)容

          廣東會網(wǎng)址 (關(guān)于廣東會網(wǎng)址 玩法)

          2022-11-22 23:31:34來源:世界杯
          導(dǎo)讀 Reflector反編譯WinForm程序后,可以得到csproj項目源碼。但其中的窗體Form類無法在Visual Studio中直接打開進(jìn)行界面設(shè)計,同時resources...

          Reflector反編譯WinForm程序后,可以得到csproj項目源碼。

          但其中的窗體Form類無法在Visual Studio中直接打開進(jìn)行界面設(shè)計,同時resources資源文件也無法被Visual Studio設(shè)計器識別。

          本程序可一鍵自動進(jìn)行轉(zhuǎn)換修復(fù),然后可以直接用Visual Studio打開項目進(jìn)行界面編輯。需要.Net Framework 4.0環(huán)境。

          Reflector是.NET開發(fā)中必備的反編譯工具。即使沒有用在反編譯領(lǐng)域,也常常用它來檢查程序集的命名規(guī)范,命名空間是否合理,組織類型的方法是否需要改善。舉例說明,它有一個可以查看程序集完整名稱的功能,請看下圖

          這里的Name,是標(biāo)識一個程序集的完整標(biāo)識,當(dāng)GAC中存在程序集的多個版本時,這個名稱是唯一的識別名稱。

          但是,Reflector很早就轉(zhuǎn)向收費軟件了,需要購買許可才可以使用。對于恥于用盜版的朋友,通常會放棄。有朋友說,Reflector并沒有增加更霸道的功能,卻轉(zhuǎn)向收費,令人費解。再看看市場上的.NET反編譯軟件,被Reflector擊潰。

          一提到Reflector,說到.NET反編譯,Reflector常常是默認(rèn)的首選工具。

          這里提起一下Visual Studio的壟斷。Visual Studio占據(jù)了.NET開發(fā)工具系列的絕對壟斷地位。在.NET 1.x時代,還有C# Builder,Delphi.NET來使用和體驗,一爭高低。可是到后來,.NET Framwork更新頻繁,動轍在編譯器級別,和語言層面做更新,這令第三方的軟件開發(fā)工具商非常苦惱,這些工具也從市場上慢慢消聲匿跡,幾乎沒有第三方的軟件開發(fā)商愿意開發(fā).NET開發(fā)工具與Visual Studio一爭高低。沒有了競爭,進(jìn)步的速度要慢很多。Visual Studio 2008差不多就是Visual Studio 2005+SP的替代品,在工具層面,Visual Studio 2005 SP1加上了Web Application,就是Visual Studio 2008。雖然說語言層面是進(jìn)步了很多,.NET 3.0,.NET 3.5,LINQ, 框架方法增加:WCF,WPF,WF,但是,我一直認(rèn)識從2005到2008,它在工具層面沒有什么進(jìn)步。?SharpDevelop 是除Visual Studio外,另一個可選擇的唯一的.NET開放工具,并且它是開源的。它提供的功能也相當(dāng)不錯,幾乎就是在重寫Visual Studio。最新的版本中,直接增加了對Visual Studio的解決方安案文件和項目文件的支持。ILSpy是SharpDevelop小組的反編譯工具,也是開放源代碼的,今天來介紹一下它的調(diào)試器和反編譯器,以讓那個收費的,卻沒有增加霸道功能的Reflector out。

          ILSpy的界面與Reflector相似,左邊以樹型控件顯示程序集和它的類型,右邊是對應(yīng)的源代碼?;A(chǔ)的反編譯功能,與Reflector相比,絲毫不差,甚至有時候用Reflector無法反編譯(因為加密)的程序集,用ILSpy可以反編譯。?

          Decompiler 反編譯器

          基礎(chǔ)的類型反編譯功能都具備,現(xiàn)在只支持把源代碼反編譯為C#和IL語言,不支持VB。

          當(dāng)需要找的程序集是.NET框架時,可以直接從菜單File—Open from GAC中打開需要查看源碼的程序集。

          代碼保存功能也做得不錯,當(dāng)點擊一個類型時,選擇File->Save Code會反編譯當(dāng)前的類型并保存到指定的文件中,當(dāng)選擇程序集時,Save Code保存為一個項目(csproj)文件,并且把它所有的類型加到這個項目中。

          Debugger 調(diào)試器

          這里要說的調(diào)試器,不是指Visual Studio的源碼級別的調(diào)試器,而是指程序集的調(diào)試器。Reflector有個Addin,可以直接附加在Visual Studio中,調(diào)試第三方的類型庫,而不需要把第三方的類型庫反編譯后,以源碼的形式添加到項目中。

          ILSpy也有這個功能,直接對第三方的程序集進(jìn)行調(diào)試,有兩種選項

          如果第三方類型庫是可執(zhí)行程序(EXE),可以用Debug an executable來啟動這個程序。

          如果第三方類型庫是程序集(DLL),可以用Attach to running application來附加,以啟動程序集的調(diào)試。

          從上面兩張圖中已經(jīng)可以看出它的用法,和調(diào)試源代碼一樣。在需要監(jiān)視變量值的方法的地方,設(shè)置斷點,當(dāng)程序運行到此時,就可以通過監(jiān)視窗體來觀察變量的值。從ILSpy的狀態(tài)欄中看出,上面的第一張圖是正處于調(diào)試狀態(tài),第二張圖,是準(zhǔn)備就緒,可以進(jìn)行調(diào)試。

          這兩者的區(qū)別是,Attach to a running application調(diào)試時,如果代碼經(jīng)過編譯器優(yōu)化,則監(jiān)視器會無法得到它的值。

          如圖所示,無法顯示正在調(diào)試的變量num的值,因為代碼已經(jīng)經(jīng)過優(yōu)化。官方推薦的方式是Debug an executable

          與在Visual Studio中調(diào)試.NET源代碼一樣,你可以Step into,Step over,continue,同時狀態(tài)欄會顯示就緒(stand by),運行中(running),正在調(diào)試(debugging)。

          除了調(diào)試程序集的C#/VB形式的代碼之外,也可以以IL代碼形式調(diào)試,如下圖所示

          由此看來,這還是相當(dāng)不錯的調(diào)試IL代碼的工具。工具可以促進(jìn)學(xué)習(xí)的效果,學(xué)習(xí)領(lǐng)悟之后,又可以推進(jìn)工具的發(fā)展,這就是知識的無止境的發(fā)展。

          ILSpy的debugger是以插件形式存在的,請確保包含ILSpy.Debugger的Plugin。

          根據(jù)我們的理解,調(diào)試.NET程序集一定需要PDB文件才可以。然而ILSpy卻沒有產(chǎn)生PDB文件(no PDB files are generated),而且它不可以調(diào)試ASP.NET Web application和Web 服務(wù)。?這其中的原理,不甚明白。compiler/debugger一直是我喜愛的技術(shù)主題,但學(xué)識膚淺,無法分享。?

          Reflector會檢測到系統(tǒng)時間超過了它預(yù)設(shè)的時間,如果不升級,它會主動刪除自己,從你的電腦中out掉。如果你對此很煩惱,那就讓它out吧,你可以有另一個選擇,試試ILSpy,或許會帶來一絲的驚喜。

          廣東會網(wǎng)址
          免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!

          猜你喜歡

          最新文章