Reflector使用手記

2021-09-09 04:47:51 字數 1660 閱讀 8553

早就聽說

reflector

這個強大的類庫分析與反編譯工具,不過一直沒有很好的利用起來。最近使用

reflector

解決了乙個實際開發問題,現將其總結出來。

需求匯入:專案是乙個

gis專案,在專案中使用到了

esri

公司的中的乙個

webcontrols

控制項,此控制項的功能過於複雜,並且引用到了

arcgis server

的很多com

元件。由於專案根本就沒有使用

adf的任何伺服器技術,但是也不得不跟著引用一些

com元件,更麻煩的是還得安裝

adf(此元件可是有將近

200m

的龐然大物)。

專案經理需要我解決這種問題並且必須盡快解決,我當時也相應的考慮到了兩個方案:

重新寫乙個類似的控制項,此控制項只做專案中用到的一些功能,至於其它功能以後再擴充套件;

利用esri

的webcontrols

控制項,去掉對

com的所有引用,因為專案沒有使用

webcontrols

控制項的任何伺服器技術,也就無需

com引用

由於時間有限,所以決定採用第二種方案,一開始使用

ildasm

分析了web server

控制項的一些類,發現過於類過於龐大。偶然想起了

reflector

工具(我以前使用過

reflector

工具分析過源**,不過好久沒用),以下是整個解決過程:

開啟reflector

filedisassembler

外掛程式用於輸出程式集的反編譯結果到檔案中。開啟

reflector

工具,並匯入

filedisassembler

外掛程式。匯入好後引導程式集將反編譯結果輸出到指定的資料夾中;

reflector

email

位址,使用者名稱中必須有空格;

filedisassembler

使用vs.net

新建乙個專案,根據資料夾結構新建相應的資料夾,匯入所有的原始檔和資源檔案。使用

filedisassembler

匯出的資源檔案為全名稱,在實際的專案中必須根據

namespace

更改資源檔名且必須將「生成操作」更改為「嵌入的資源」,可以使用

ildasm

檢視metadata

來決定資源檔名及所在的資料夾,編譯並更改一些錯誤;

當編譯好後,找到所有與

com有關的內容將其注釋掉(因為以前使用過

ccw/rcw

技術),並做相應的更改,每更改乙個

class

後,編譯一次,直到去掉其相關引用為止;

更改完成後,需要對其進行重構,主要重構以下方面:

當重構完成後,應用到專案中,並更改相應的

register

語句,test

,run

,結果是

successful

,從而也在最短的時間內完成了專案經理所交給我的任務。

先行說明:在

reflect

時,請遵守

esri

公司的end user licenses。

linux使用手記

本文會根據筆者實踐不斷更新 一.安裝星際譯王 stardict 星際譯王是用gtk2開發的跨平台的國際化的詞典軟體。它具有 萬用字元匹配 選中區取詞 模糊查詢 等強大功能。所以他不僅僅是漢英和英漢詞典 目前星際譯王的詞庫很多 但國人大多還是用英漢和漢英比較多 官方主站 http stardict.s...

virtualbox使用手記

系統 ubuntu 8.10 機器上的windows崩潰了,就裝了個virtualbox,虛擬安裝了個virtualbox 先是用的apt源上的virtualbox ose,後來發現這個版本沒辦法支援usb裝置 於是換成了官方提供的新版本 http www.virtualbox.org wiki l...

git使用手記

結合vscode使用git遠端傳專案 在vscode中 檢視 開啟命令面板,輸入git安裝 進入到專案資料夾,git clone http 要傳的位址 git config list git config e global git config user.name 括號裡面寫你的github名字 g...