public override IDbConnection CreateMsSqlConnection(string connectionString) { if (MsSqlFunc == null) { lock (SyncObj) { if (MsSqlFunc == null) { var type = Type.GetType("System.Data.SqlClient.SqlConnection,System.Data.SqlClient"); AssertUtils.IsNotNull(type, "请添加System.Data.SqlClient组件"); MsSqlFunc = MethodUtils.CreateInstanceDelegate <Func <string, IDbConnection> >(type, new Type[] { typeof(string) }); } } } return(MsSqlFunc(connectionString)); }
public override IDbConnection CreateMySqlConnection(string connectionString) { if (MySqlFunc == null) { lock (SyncObj) { if (MySqlFunc == null) { var type = Type.GetType("MySql.Data.MySqlClient.MySqlConnection,MySql.Data"); AssertUtils.IsNotNull(type, "请添加MySql.Data组件"); var MySqlConstructor = type.GetConstructor(new Type[] { typeof(string) }); // Activator.CreateInstance // return MySqlCons tructor.Invoke(new object[] { connectionString }) as IDbConnection; MySqlFunc = MethodUtils.CreateInstanceDelegate <Func <string, IDbConnection> >(type, new Type[] { typeof(string) }); } } } return(MySqlFunc(connectionString)); }