c 反射本地Dll檔案

2021-09-25 03:00:49 字數 1867 閱讀 9781

這篇**實現了本地路徑查詢dll檔案,與例項化物件類的方法來引用方法,具體看**剛學的做個筆記;

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using system.reflection;

using c_sharp_mybcl;

namespace c_sharp_reflect

//例項化類來引用

//class1 class1 = new class1();

//type type = class1.gettype();

//通過資料夾查詢類庫來引用

//assembly ass = assembly.loadfrom(@"d:\vs專案\c sharp_mybcl\c sharp_mybcl\bin\debug\c sharp_mybcl.dll");

//type type = ass.gettype("c_sharp_mybcl.class1");

//標誌位

//bindingflags flag = bindingflags.public | bindingflags.instance;

//遍歷類中所有公開字段,函式

//foreach (var item in type.getmembers())

////遍歷類中所有私有字段,函式

//遍歷私有的需要傳入標誌位

//foreach (var item in type.getmembers(flag))

////引數

//object cons = new object[1];

//cons[0] = 123;

//引數型別

//type types = new type[1];

//types[0] = typeof(int);

//例項

//object obj = activator.createinstance(type);

//訪問

//methodinfo methodinfo = type.getmethod("fun1", flag, type.defaultbinder, types, null);

cons);

/*呼叫程式集靜態方法

*首先通過資料夾查詢到程式集檔案

*dll檔案點類

*標誌位

*然後檢視類中方法

*實列*訪問方法

*執行實列

*/assembly assembly1 = assembly.loadfrom(@"d:\vs專案\c sharp_mybcl\c sharp_mybcl\bin\debug\c sharp_mybcl.dll");

type type = assembly1.gettype("c_sharp_mybcl.class2");

bindingflags flag2 = bindingflags.static | bindingflags.public | bindingflags.nonpublic | bindingflags.instance;

foreach (var item in type.getmembers())

object obj1 = activator.createinstance(type);

methodinfo method = type.getmethod("myclass2fun", flag2);

method.invoke(obj1, null);

console.readkey();} }

}

C 解析DLL 反射

前段時間敲 需要動態的載入的外部dll,並且解析dll,來讀取dll中的類,屬性,有時候還需要讀取特性的值。這個問題剛開始遇到,是一點想法沒有,以前沒有這麼用過,後來查資料,請教別人,終於有了結果。當有了 之後,發現在找問題的過程中,我糊塗了,因為解決這個問題的方式主要是 反射。我是通過利用反射進行...

PE檔案本地DLL注入實現

之前寫過乙個利用遠端執行緒注入dll的工具,大致過程如下 1.使用openprocesstoken lookupprivilegevalue adjusttokenprivileges函式修改當前程序的的訪問令牌,獲得除錯許可權。2.openprocess開啟目標程序,用virtualallocex...

c 反射 動態載入dll簡單例子

假設已有元件classlibrarytest.dll,放置於程式目錄下。元件中classlibrarytest命名空間下有test類,類中有方法sum。下面示例就是動態載入元件並呼叫sum方法的簡例 1 static void main string args 2 classlibrarytest....