創建一個控制檯應用程序寫反射+簡單工廠+配置文件
目錄如下
步驟一:定義接口
namespace Interface
{/// <summary>
/// 數據訪問類抽象
/// </summary>
public interface IDBHelper
{
void Query();
}
}
步驟二:定義SqlServerHelper類繼承IDBHelper接口
using Interface;
using System;
namespace Helper
{
/// <summary>
/// SqlServerHelper類
/// </summary>
public class SqlServerHelper : IDBHelper
{
//private static string ConnectionStringCustomers = ConfigurationManager.ConnectionStrings["Customers"].ConnectionString;
public void Query()
{
Console.WriteLine("{0}.Query", this.GetType().Name);
}
public SqlServerHelper()
{
Console.WriteLine("{0}被構造", this.GetType().Name);
}
}
}
步驟三:在配置文件App.config中添加
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
....
<!--配置-->
<appSettings>
<add key="IDBHelperConfig" value="Helper,Helper.SqlServerHelper"/>
</appSettings>
</configuration>
步驟四:創建簡單工廠SimpleFactory
using Interface;
using System;
using System.Configuration;
using System.Reflection;
namespace Factory
{
/// <summary>
/// 簡單工廠
/// </summary>
public class SimpleFactory
{
/// <summary>
/// 字符串放在配置文件App.config中
/// </summary>
private static string IDBHelperConfig = ConfigurationManager.AppSettings["IDBHelperConfig"];//AppSettings["key"]
private static string DllName = IDBHelperConfig.Split(',')[0];//dll
private static string TypeName = IDBHelperConfig.Split(',')[1];//type
public static IDBHelper CreateDBHelper()
{
//1.加載dll
Assembly assembly = Assembly.Load(DllName);
//2.獲取類型信息
Type type = assembly.GetType(TypeName);
//3.創建對象
object oHelper = Activator.CreateInstance(type);
//4.類型轉換
IDBHelper dBHelper = (IDBHelper)oHelper;
//5.調用方法
return dBHelper;
}
}
}
步驟五:完成Program.cs
static void Main(string[] args)
{
try
#region 反射+工廠+Config配置
{
//IOC 可配置,可擴展
Console.WriteLine("************反射+工廠+Config配置************");
IDBHelper dBHelper = SimpleFactory.CreateDBHelper();
dBHelper.Query();
}
#endregion
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
}
大公告成!!!看看最後的效果
喜歡的可以自己去試試哦!