反射(二)之 配置擴充套件應用

2021-09-28 19:47:10 字數 899 閱讀 3311

前言

前面學習了反射的基本正規化,並且做了一些嘗試,但遺留了乙個問題,反射有什麼作用,這裡將會用乙個例子來說明反射之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...