轉:反編譯Silverlight項目

來源:互聯網
上載者:User

轉自:http://www.cnblogs.com/jv9/archive/2009/12/15/1622853.html

在互連網上,每天都會有很多Silverlight項目發布,有的是開源,有的只是為了展示。

在Silverlight學習的初期,多數都需要模仿學習,所以,發現一個Silverlight項目,能夠查看其中的原始碼是最好不過了。

但是,Silverlight發布,只是發布資源套件XAP,而所有資源都在這個XAP檔案中,該如何查看其中的資源和代碼呢?

下面我將示範反編譯的方法,示範中我將用Silverlight.Net首頁Silverlight作為例子。

1. 首先開啟Silverlight.Net,該頁面中包含一個Silverlight導航動畫;

 

 

2. 在瀏覽器中,點擊右鍵,查看頁面原始碼;

 

 

3. 在html原始碼中搜尋"xap",很快就能定位出xap的位置。

 

 

 

我們看到<param name="Source" value="clientBin/showcasenav/ShowcaseNav.xap" />

該value就是xap在伺服器端的位置。

 

4. 我們使用同樣的網域名稱,來擷取當前的xap檔案。開啟新的瀏覽器,在地址欄輸入:  http://www.silverlight.net/clientBin/showcasenav/ShowcaseNav.xap

這時瀏覽器會提示你下載該xap檔案。

 

 

5. 重新命名下載下來的檔案ShowcaseNav.xap,為 ShowcaseNav.zip. 然後解壓該壓縮包到同一個目錄. 在目錄中,會看到該Silverlight使用的裝配單檔案,以及類庫,和設定檔.

 

 

6. 下面可以使用大家都比較熟悉的反編譯軟體,Reflector來查看DLL中的資源和代碼檔案。 下載Reflector: http://www.red-gate.com/products/reflector/

 

 

 

7. 在Reflector中雙擊“MsCommunities.Silverlight.ShowcaseNav”,展開檔案會看到DLL和Resources,其中Resources中包含這所有的xaml檔案和圖片檔案,DLL中都是類庫後台代碼。

 

 

 

8. 點擊進入Reources目錄,雙擊“MsCommunities.Silverlight.ShowcaseNav.g.resources”,

在Reflector右邊可以看到資源清單,選中任意一個想查看代碼的檔案,點擊右鍵“Save As”,儲存到本地,即可使用VS2008或者文本編輯軟體查看代碼內容。

 

 

 

9. 對應著每個資源檔會有類庫代碼,雙擊“MsCommunities.Silverlight.ShowcaseNav.dll”,再雙擊“MsCommunities.Silverlight.ShowcaseNav”,可以查看各個類庫檔案,這裡,我們選中"ItemAdvanceControl“,在Reflector右邊即可看到反編譯代碼。

 

 

 

至此,我們已經講述如何反編譯Silverlight項目,查看其原始碼,下面我想介紹一款國外的共用軟體,也可以達到上面同樣的效果 - Silverlight SPY,

:http://silverlightspy.com/silverlightspy/download-silverlight-spy/

Silverlight SPY是一款共用軟體,該軟體可以自動擷取XAP檔案,幫你解析XAP中的檔案,該軟體和Reflector配合約樣可以查看Silverlight項目原始碼。

同時,可以分解項目中的樣式和UI,以及Isolated Storege展示給開發人員。

我們在地址欄輸入Silverlight.NET地址,即可得到,雙擊任何一個資源,在View視窗即可查看。

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.