/// <summary> /// 根据数据源名称获得相应的DBHelper /// 若缓存中有则直接返回 /// /// </summary> /// <param name="dsName">data source name(lowcase)</param> /// <returns></returns> public static IDBHelper GetHelper(string dsName) { //If Null, init data source list first; if (DataSourceList == null) { //默认使用DBHelper.config,这里可以按需求修改为默认使用App.config XmlConfigurator.Configure("DBHelper.config"); } if (string.IsNullOrEmpty(dsName)) { dsName = "default"; } dsName = dsName.ToLower();//配置文件中dsName要小写 if (DataSourceList.ContainsKey(dsName)) { //实例化 DataSourceConfig dsConfig = DataSourceList[dsName]; string[] classNameArray = dsConfig.dialectClass.Split(new char[] { ':', '-' }); string className = classNameArray[1]; string assemblyName = classNameArray[0]; Type type = null; if (string.IsNullOrEmpty(dsConfig.dialectClass)) { throw new ArgumentNullException("配置文件错误:请检查Dialect配置"); } type = Assembly.Load(assemblyName).GetType(className, true); IDBHelper instance = Activator.CreateInstance(type, dsConfig.Parameters) as IDBHelper; return(instance); } else { throw new Exception("Not found data source [" + dsName + "], please check config file."); } }