zoukankan      html  css  js  c++  java
  • 反射应用

    1.通过反射实现多系统数据库的配置

    通过定义接口,反射实例化配置的节点的值

    配置App.config,(关于APP.config的配置有一篇博文很丰富,参见周公博客

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="DAL" value="FactoryInterface.Oracle"/>
      </appSettings>
    </configuration>

    通过System.Configuration.ConfigurationManager.AppSettings读取该key的value,使用Configuration需要将其dll添加到项目中

    接口定义

    namespace FactoryInterface
    {
        interface IDAL
        {
            void insert();
        }
    }

    Program定义

    namespace FactoryInterface
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                string config = System.Configuration.ConfigurationManager.AppSettings["DAL"];
                Console.WriteLine(config);
                Type t = Type.GetType(config);
                IDAL dal =(IDAL) System.Activator.CreateInstance(t);
                dal.insert();
                Console.ReadKey();
    
            }
    
        }
        class MySql : IDAL {
            public void insert() {
                Console.WriteLine("this data insert by MySql");
            }
        }
        class Oracle : IDAL
        {
            public void insert()
            {
                Console.WriteLine("this data insert by Oracle");
            }
        }
    }

    输出效果:

    image

  • 相关阅读:
    memset 还可以这样用
    搜索(DFS)
    搜索(BFS)
    最大流之sap算法
    最大流之sap算法
    String VS Cstring(字符串)
    String VS Cstring(字符串)
    Set 与 Multiset
    deque(双端队列)
    枚举 TODO
  • 原文地址:https://www.cnblogs.com/keithmoring/p/4121386.html
Copyright © 2011-2022 走看看