反射是.net中非常有用的特性。 什麼是反射 可以用一句話來概括就是:基於程式集和元數據,可以動態創建某個類型的實例,調用方法,和訪問對象成員的一種能力。 為什麼要使用反射 在編譯時無法確定要調用的對象的時候,就不得不使用反射。 反射的應用場景 最常見的應用場景有: 1,ORM框架,因為它要面對的是 ...
反射是.net中非常有用的特性。
什麼是反射
可以用一句話來概括就是:基於程式集和元數據,可以動態創建某個類型的實例,調用方法,和訪問對象成員的一種能力。
為什麼要使用反射
在編譯時無法確定要調用的對象的時候,就不得不使用反射。
反射的應用場景
最常見的應用場景有:
1,ORM框架,因為它要面對的是通用的模型,所有的屬性或方法都是動態生成的。
2,基於插件的系統,在完全不知道外部插件究竟是什麼東西的情況下,是一定無法在編譯期確定的,因此會使用反射進行載入。
程式集
由於反射是基於程式集和元數據的,所以有必要解釋一下什麼是程式集,什麼時元數據。
程式集:程式集是所有類型的集合,編譯後生成PE文件(例如可執行文件.exe和類庫文件.dll)。
元數據:元數據是程式集中的一部分,主要包含了名稱,版本,語言文化和公鑰標記等信息。