反射应用_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 反射应用

反射应用

 2014/11/25 18:12:15  KeithMorning  程序员俱乐部  我要评论(0)
  • 摘要:1.通过反射实现多系统数据库的配置通过定义接口,反射实例化配置的节点的值配置App.config,(关于APP.config的配置有一篇博文很丰富,参见周公博客)<?xmlversion="1.0"encoding="utf-8"?><configuration><appSettings><addkey="DAL"value="FactoryInterface.Oracle"/></appSettings><
  • 标签:应用 反射

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

发表评论
用户名: 匿名