|
在互聯(lián)網(wǎng)上,每天都會(huì)有很多Silverlight項(xiàng)目發(fā)布,有的是開(kāi)源,有的只是為了展示。在Silverlight學(xué)習(xí)的初期,多數(shù)都需要模仿學(xué)習(xí),所以,發(fā)現(xiàn)一個(gè)Silverlight項(xiàng)目,能夠查看其中的源代碼是最好不過(guò)了。但是,Silverlight發(fā)布,只是發(fā)布資源包XAP,而所有資源都在這個(gè)XAP文件中,該如何查看其中的資源和代碼呢?下面我將演示反編譯的方法,演示中我將用Silverlight.NET首頁(yè)Silverlight作為例子。
1. 首先打開(kāi)Silverlight.NET,該頁(yè)面中包含一個(gè)Silverlight導(dǎo)航動(dòng)畫(huà);
2. 在瀏覽器中,點(diǎn)擊右鍵,查看頁(yè)面源代碼;
3. 在html源代碼中搜索"xap",很快就能定位出xap的位置。
我們看到<param name="Source" value="clientBin/showcasenav/ShowcaseNav.xap" />,該value就是xap在服務(wù)器端的位置。
4. 我們使用同樣的域名,來(lái)獲取當(dāng)前的xap文件。打開(kāi)新的瀏覽器,在地址欄輸入:http://www.silverlight.NET/clientBin/showcasenav/ShowcaseNav.xap,這時(shí)瀏覽器會(huì)提示你下載該xap文件。
5. 重新命名下載下來(lái)的文件ShowcaseNav.xap,為 ShowcaseNav.zip. 然后解壓該壓縮包到同一個(gè)目錄. 在目錄中,會(huì)看到該Silverlight使用的裝配單文件,以及類(lèi)庫(kù),和配置文件。
6. 下面可以使用大家都比較熟悉的反編譯軟件,Reflector來(lái)查看DLL中的資源和代碼文件。 下載Reflector: http://www.red-gate.com/products/reflector/。
7. 在Reflector中雙擊“MsCommunities.Silverlight.ShowcaseNav”,展開(kāi)文件會(huì)看到DLL和Resources,其中Resources中包含這所有的xaml文件和圖片文件,DLL中都是類(lèi)庫(kù)后臺(tái)代碼。
8. 點(diǎn)擊進(jìn)入Reources目錄,雙擊“MsCommunities.Silverlight.ShowcaseNav.g.resources”,在Reflector右邊可以看到資源列表,選中任意一個(gè)想查看代碼的文件,點(diǎn)擊右鍵“Save As”,保存到本地,即可使用VS2008或者文本編輯軟件查看代碼內(nèi)容。
9. 對(duì)應(yīng)著每個(gè)資源文件會(huì)有類(lèi)庫(kù)代碼,雙擊“MsCommunities.Silverlight.ShowcaseNav.dll”,再雙擊“MsCommunities.Silverlight.ShowcaseNav”,可以查看各個(gè)類(lèi)庫(kù)文件,這里,我們選中"ItemAdvanceControl“,在Reflector右邊即可看到反編譯代碼。
至此,我們已經(jīng)講述如何反編譯Silverlight項(xiàng)目,查看其源代碼,下面我想介紹一款國(guó)外的共享軟件,也可以達(dá)到上面同樣的效果 - Silverlight SPY,下載地址:http://silverlightspy.com/silverlightspy/download-silverlight-spy/。
Silverlight SPY是一款共享軟件,該軟件可以自動(dòng)獲取XAP文件,幫你解析XAP中的文件,該軟件和Reflector配合同樣可以查看Silverlight項(xiàng)目源代碼。同時(shí),可以分解項(xiàng)目中的樣式和UI,以及Isolated Storege展示給開(kāi)發(fā)人員。我們?cè)诘刂窓谳斎隨ilverlight.NET地址,即可得到,雙擊任何一個(gè)資源,在View窗口即可查看。
NET技術(shù):反編譯Silverlight項(xiàng)目,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。