public void Test1() { DeltaX.Configuration.CommonSettings.BasePath = GetUnitTestBasePath(); var basePath = DeltaX.Configuration.CommonSettings.BasePath; var assemblyName = Path.Combine(basePath, @"Source\Core\DeltaX.Database\bin\Release\net5.0\DeltaX.Database.dll"); var className = "DeltaX.Database.DbConnectionFactory"; // Load Assembly only var asl = new AssemblyLoader(Path.GetDirectoryName(assemblyName)); var assembly1 = asl.LoadFromAssemblyName(Path.GetFileName(assemblyName)); Assert.NotNull(assembly1); // Load Assemby and Create Instance var t1 = InstanceCreator.GetType(assemblyName, className); var inst = Activator.CreateInstance(t1, new object[] { null, null, null }); Assert.NotNull(inst); /// assemblyName = @"D:\DEV\repos\DeltaX-Community\DeltaX\Bin\DeltaX.TagRuleToDatabase\MySqlConnector.dll"; /// className = "MySqlConnector.MySqlConnection"; /// /// Console.WriteLine($"Load {assemblyName}!"); /// var assembly2 = asl.LoadFromAssemblyName(Path.GetFileName(assemblyName)); /// Assert.NotNull(assembly2); /// /// var t2 = InstanceCreator.GetType(assemblyName, className); /// IDbConnection inst2 = Activator.CreateInstance(t2, new object[] { }) as IDbConnection; /// Assert.NotNull(inst2); }
private IDatabaseBase GetDbConnectionFactory(string connectionFactory = "DefaultDatabaseConnection") { var connectionSection = new DatabaseConnectionConfiguration(); configuration.GetSection(connectionFactory).Bind(connectionSection); string[] assembyAndClass = connectionSection.Type.Split(";"); var type = InstanceCreator.GetType(assembyAndClass[0].Trim(), assembyAndClass[1].Trim()); return(DatabaseBase.Build(type, new[] { connectionSection.ConnectionString }, loggerFactory)); }
public DbConnectionFactory GetDbConnectionFactory(string databaseConnectionSectionName = "DefaultDatabaseConnection") { var connectionSection = new DatabaseConnectionSection(); configuration.GetSection(databaseConnectionSectionName).Bind(connectionSection); string[] assembyAndClass = connectionSection.Type.Split(";"); var type = InstanceCreator.GetType(assembyAndClass[0].Trim(), assembyAndClass[1].Trim()); return(new DbConnectionFactory(type, new[] { connectionSection.ConnectionString }, logger)); }
static void Main(string[] args) { var assemblyName = @"D:\DEV\repos\DeltaX-Community\DeltaX\Bin\DeltaX.TagRuleToDatabase\DeltaX.Database.dll"; var className = "DeltaX.Database.DbConnectionFactory"; Console.WriteLine($"Load {assemblyName}!"); var asl = new AssemblyLoader(Path.GetDirectoryName(assemblyName)); var res1 = asl.LoadFromAssemblyName(new AssemblyName(Path.GetFileNameWithoutExtension(assemblyName))); // PrintTypes(res1); var t1 = InstanceCreator.GetType(assemblyName, className); var inst = Activator.CreateInstance(t1, new object[] { null, null, null }); assemblyName = @"D:\DEV\repos\DeltaX-Community\DeltaX\Bin\DeltaX.TagRuleToDatabase\MySqlConnector.dll"; className = "MySqlConnector.MySqlConnection"; Console.WriteLine($"Load {assemblyName}!"); var res2 = asl.LoadFromAssemblyName(new AssemblyName(Path.GetFileNameWithoutExtension(assemblyName))); // PrintTypes(res2); var t2 = InstanceCreator.GetType(assemblyName, className); var inst2 = Activator.CreateInstance(t2, new object[] { }); }