예제 #1
0
        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);
        }
예제 #2
0
        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));
        }
예제 #3
0
    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));
    }
예제 #4
0
        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[] { });
        }