C#反射應(yīng)用實(shí)例
本文實(shí)例講述了C#反射應(yīng)用。分享給大家供大家參考。具體如下:
通過反射實(shí)現(xiàn)多系統(tǒng)數(shù)據(jù)庫的配置
通過定義接口,反射實(shí)例化配置的節(jié)點(diǎn)的值
配置App.config:
<configuration>
<appSettings>
<add key="DAL" value="FactoryInterface.Oracle"/>
</appSettings>
</configuration>
通過System.Configuration.ConfigurationManager.AppSettings讀取該key的value,使用Configuration需要將其dll添加到項(xiàng)目中
接口定義:
{
interface IDAL
{
void insert();
}
}
Program定義:
{
class Program
{
static void Main(string[] args)
{
string config = System.Configuration.ConfigurationManager.AppSettings["DAL"];
Console.WriteLine(config);
Type t = Type.GetType(config);
IDAL dal =(IDAL) System.Activator.CreateInstance(t);
dal.insert();
Console.ReadKey();
}
}
class MySql : IDAL {
public void insert() {
Console.WriteLine("this data insert by MySql");
}
}
class Oracle : IDAL
{
public void insert()
{
Console.WriteLine("this data insert by Oracle");
}
}
}
輸出效果如下圖所示:
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C# 利用VS編寫一個(gè)簡(jiǎn)單的網(wǎng)游客戶端
本文主要介紹了在visual studio中利用C#編寫一個(gè)簡(jiǎn)單的網(wǎng)游客戶端,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12WPF利用TabControl控件實(shí)現(xiàn)拖拽排序功能
在UI交互中,拖拽操作是一種非常簡(jiǎn)單友好的交互,這篇文章主要為大家介紹了WPF如何利用TabControl控件實(shí)現(xiàn)拖拽排序功能,需要的小伙伴可以參考一下2023-10-10c# AES字節(jié)數(shù)組加密解密流程及代碼實(shí)現(xiàn)
這篇文章主要介紹了c# AES字節(jié)數(shù)組加密解密流程及代碼實(shí)現(xiàn),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2020-11-11C#使用Socket快速判斷數(shù)據(jù)庫連接是否正常的方法
這篇文章主要介紹了C#使用Socket快速判斷數(shù)據(jù)庫連接是否正常的方法,涉及C#中socket操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04