前言
前面學習了反射的基本正規化,並且做了一些嘗試,但遺留了乙個問題,反射有什麼作用,這裡將會用乙個例子來說明反射之assembly的強大與應用所在。
目標實現乙個可配置、可擴充套件的應用,這也就是assembly載入dll的意義所在之一。
正文1、建立乙個類庫,實現以下**
//介面類
namespace reflectiondemo
}//乙個繼承了介面的類檔案,模擬mysql資料庫查詢上下文
namespace reflectiondemo
public void query()
",gettype().fullname);}}
}
2、建立乙個工廠類,專門建立資料庫連線物件
public class factory
}
以上**就是利用反射來建立乙個資料庫連線例項,建立的具體型別是通過讀取配置檔案來指定的,所以實現了一種可配置,當需要連線其他資料庫時只需要修改配置檔案即可。配置檔案中指定了動態庫的名稱和型別名稱,格式如下:
<?xml version="1.0" encoding="utf-8"?>
3、使用工廠建立的例項呼叫方法
idbhelp idbhelp = factory.createhelp();
idbhelp.query();
結尾
以上就實現了程式的可配置、可擴充套件,當需要連線其他資料庫時只需要提供乙個類似的dll,並修改配置檔案就可實現相應的功能。類似的dll是要求新增的dll需要繼承同樣的介面並實現相應的方法。
文中有涉及到乙個讀取配置檔案的操作,這裡不做介紹,欲知原有請移步至「配置檔案操作「筆記一文。
C 反射之應用
目錄前言 反射優點 缺點 做過重構的人都知道,在重構中要用到反射,什麼時反射有很多人並不清楚,為了了解一下這個知識點,現在總結一下。所謂反射就是在.net framework中提供的一種機制,在程式執行時能動態的引導程式集 assembly 載入型別,建立物件,呼叫成員。程式集其實就是我們常見的一些...
反射應用二 利用反射加配置檔案實現多資料庫的訪問
專案整體結構如下圖所示 1 database.instance是乙個類庫檔案,idbhelper是乙個介面,封裝的訪問資料庫資料的curd方法,oracledbhelper和sqlserverdbhelper類實現idbhelper介面,分別用來訪問oracle資料庫和sql server資料庫,介...
EventBus二之反射原理
目錄 1 新建android libray 2 定義eventbus反射機制需要的元素 3 實現eventbus核心類 新建android libray 定義eventbus反射機制需要的元素 a.新增註解類 target elementtype.method retention retention...