C 反射之跨空間Load Enum篇

2021-05-23 03:24:00 字數 457 閱讀 3468

c#反射只能夠load本名字空間以及mscore.dll空間的型別,如果需要獲得某dll中型別,必須通過如下載入assembly然後才能獲取到相應的型別:

assembly assembly = assembly.load(「xdll.dll」);

type type = assembly.gettype(「mydll.myenum」);

fieldinfo enumitem = type.getfield(「enum_test」);

object enumvalue= enum.toobject(type, enumitem.getvalue(type));

最後一行**得到的就是對應的enum物件的例項,可以傳遞給方法呼叫,type.getfield方法中的字串其實就是enum中的字串名字。要得到這個名字的列表也很容易:

string names = enum.getnames(type);

C 反射之應用

目錄前言 反射優點 缺點 做過重構的人都知道,在重構中要用到反射,什麼時反射有很多人並不清楚,為了了解一下這個知識點,現在總結一下。所謂反射就是在.net framework中提供的一種機制,在程式執行時能動態的引導程式集 assembly 載入型別,建立物件,呼叫成員。程式集其實就是我們常見的一些...

C 跨執行緒的給空間賦值

上篇文章已經寫過 又發現一種更簡單的方法,和大家分享,通常,c 是不許跨執行緒賦值的,如 form1中有個textbox,若開闢乙個新的執行緒來給 這個textbox賦值時,會出現異常。msdn中提出了具體的做法,較為繁瑣,就不說了。我這裡有個簡單辦法。大多數能賦值的控制項都有invoke 方法,i...

C 之命名空間

c中是沒有命名空間這個概念的,是c 中新引入的乙個東西,為了處理同名的衝突。其實命名空間就是封裝的乙個概念。把一些變數 函式 類給封裝起來。和類的封裝概念很像,但是比類的封裝要大。一 1.自定義定義命名空間 格式 namespacename namespace my 此 的目的就是想往命名空間std...