zoukankan      html  css  js  c++  java
  • 反射2

    1.我的随笔

      简单工厂模式、反射  都有写到一些反射

    2.设计一个可配置是sql Helper

      这里只说明一下反射的大体框架

      

      写一个接口,定义插入和更新操作

    namespace ConsoleApp1
    {
        public interface IDBHelper
        {
            void insert();
            void update();
        }
    }

       1)类库DB.Mysql定义一个DBHelper 

    namespace DB.MySql
    {
        public class DBHelper : IDBHelper
        {
            public void insert()
            {
                Console.WriteLine("Mysql insert");
            }
            public void update()
            {
                Console.WriteLine("Mysql update");
            }
        }
    }

      指定生成文件的位置,为了方便操作,我们存在在执行exe的目录里面(文件夹会自动生成,不需要我们自己新建,定义好输出路径就行)

      

      定义输出路径

    ..ConsoleApp1inDebugDB.MySql

      2)同理,Oracle的操作也一样

      类库DB.Oracle定义一个DBHelper 

        public class DBHelper : IDBHelper
        {
            public void insert()
            {
                Console.WriteLine("Oracle insert");
            }
            public void update()
            {
                Console.WriteLine("Oracle update");
            }
        }

      定义输出路径

    ..ConsoleApp1inDebugDB.Oracle

      3)主程序

    namespace ConsoleApp1
    {
        class Program
        {
            static string db = ConfigurationManager.AppSettings["db"];
            static void Main(string[] args)
            {
                Assembly assembly = Assembly.LoadFile(DllPath());//反射的入口
                IDBHelper helper = (IDBHelper)Activator.CreateInstance(assembly.GetType($"{db}.DBHelper"));
                helper.insert();
                Console.ReadLine();
            }
            /// <summary>
            /// 加载dll路径
            /// </summary>
            /// <returns></returns>
            static string DllPath()
            {
                var path = Application.ExecutablePath;
                //var serviceName = new FileInfo(path).Name;
                var serviceDirectory = new FileInfo(path).Directory;
                return $@"{serviceDirectory}{db}{db}.dll";
            }
        }
    }

      主程序配置文件

      <appSettings>
        <add key="db" value="DB.MySql"/>
      </appSettings>
  • 相关阅读:
    使用WebAPI流式传输大文件(在IIS上大于2GB)
    网页扫描仪图像上传
    网页高拍仪图像上传
    C++
    Tomcat Connector三种执行模式(BIO, NIO, APR)的比較和优化
    编程精粹--编写高质量C语言代码(1):假想编译程序
    一个软件项目的总纲性的測试计划叫什么?
    Java字符串的格式化与输出
    Servlet入门(第一个Servlet的Web程序)
    求职小技巧,赢得大机会
  • 原文地址:https://www.cnblogs.com/wskxy/p/10655957.html
Copyright © 2011-2022 走看看