1.通过反射实现多系统数据库的配置通过定义接口,反射实例化配置的节点的值
配置App.config,(关于APP.config的配置有一篇博文很丰富,参见周公博客)
<?xmlversion="1.0" encoding="utf-8"?><configuration><appSettings><addkey="DAL"value="FactoryInterface.Oracle"/></appSettings></configuration>
通过System.Configuration.ConfigurationManager.AppSettings读取该key的value,使用Configuration需要将其dll添加到项目中
接口定义
namespaceFactoryInterface
{interfaceIDAL
{voidinsert();
}
}
PRogram定义
namespaceFactoryInterface
{classProgram
{staticvoidMain(string[] args)
{stringconfig = System.Configuration.ConfigurationManager.AppSettings["DAL"];
Console.WriteLine(config);
Type t=Type.GetType(config);
IDAL dal=(IDAL) System.Activator.CreateInstance(t);
dal.insert();
Console.ReadKey();
}
}classMySQL: IDAL {publicvoidinsert() {
Console.WriteLine("this data insert by MySql");
}
}classOracle : IDAL
{publicvoidinsert()
{
Console.WriteLine("this data insert by Oracle");
}
}
}
输出效果: