zoukankan      html  css  js  c++  java
  • 反射的用法之二

    1.采用配置文件使用反射

    2. 配置文件 App.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
      </startup>
      <appSettings>

        <!--<add key="IHelpConfig" value="Com.Meteor.Dal,Com.Meteor.Dal.SqlserverHelper"/>-->
        <add key="IHelpConfig" value="Com.Meteor.MySql,Com.Meteor.MySql.MysqlHelper"/>

      </appSettings>
    </configuration>

    3.反射举例

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Reflection;
    using Com.Meteor.Interface;
    using System.Configuration;
    
    namespace MyReflection
    {
        /// <summary>
        /// metadata元数据
        /// </summary>
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("欢迎大家来流星小子博客,学习反射技术");
    
              //  SqlserverHelper sqlserverHelper = new SqlserverHelper();
              //  sqlserverHelper.Query();
               Console.WriteLine("-----------可配置可扩展--------------");
               string iHelperConfig = ConfigurationManager.AppSettings["IHelpConfig"];
               Assembly assembly = Assembly.Load(iHelperConfig.Split(',')[0]);//动态加载dll
               Type typeHelper = assembly.GetType(iHelperConfig.Split(',')[1]);
               Object oHelper = Activator.CreateInstance(typeHelper);
               IHelper iHelper = (IHelper)oHelper; //这句有性能损失,使用了强制类型转换
               iHelper.Query();
               Console.Read();
    
            }
        }
    }
    namespace Com.Meteor.Interface
    {
        public interface IHelper
        {
            void Query();
        }
    }
    
    namespace Com.Meteor.Dal
    {
        public class SqlserverHelper : IHelper
        {
            public SqlserverHelper()
            {
                Console.WriteLine("这里开始构造SqlserverHelper");
            } 
            public void Query()
            {
                Console.WriteLine("SqlserverHelper Query");
            }
        }
    }
    public class MysqlHelper : IHelper
        {
            public MysqlHelper()
            {
                Console.WriteLine("这里开始构造MysqlHelper");
            }
            public void Query()
            {
                Console.WriteLine("MysqlHelper Query");
            }
        }

     代码下载路径:https://i.cnblogs.com/Files.aspx

  • 相关阅读:
    【五一qbxt】day7-1 引水入城
    【五一qbxt】day6 OI中的stl
    【五一qbxt】test2
    ASCII码
    深入浅出Redis04使用Redis数据库(lists类型)
    深入浅出Redis03 使用Redis数据库(hashes类型)
    深入浅出Redis01安装
    FireFox & Chrome 使用技巧
    Android学习笔记03-搭建Win8下的Android开发环境
    java + jquery + ajax + json 交互
  • 原文地址:https://www.cnblogs.com/gylhaut/p/5778033.html
Copyright © 2011-2022 走看看