zoukankan      html  css  js  c++  java
  • 反射

     

    一、格式:

    Assembly.Load("程序集名称").CreateInstance("命名空间.名称")

     

    程序集:创建类库的名称

     

    命名空间:

     

    二、反射解析

    using System.Reflection;

    三、实例demo

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    
    using System.Reflection;//引用反射
    using System.Configuration;//配置文件
    
    namespace ITOO_DAL
    {
        class DataAccess
        {
            //给变量字段赋值,读取配置文件中的值,只读
            private static readonly string db = ConfigurationManager.AppSettings["DB"];//读取配置文件
            //确定程序集名称,只读
           private static readonly string AssemblyName = "ITOO_DAL";
    
            //给程序集赋值
            private static readonly string db = "Sqlserver";
    
            //通过接口,反射创建User类
            public static IUser CreateUser()
            {
                string className = AssemblyName + "." +db+ "User";//ITOO_DAL.User
                return (IUser) Assembly.Load(AssemblyName).CreateInstance(className);
            }
            //通过接口,反射创建department类
            public static IDepartment CreateDepartment()
            {
                string className = AssemblyName + "." + db + "Department";
                return (IDepartment) AssemblyName.Load(AssemblyName).CreatInstance(className);
            }
        }
    }
    

      配置文件需要给DB赋值

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
      
      <!--给程序里面的变量赋值-->
      <appSettings>
        <add key="DB" value="Sqlserver"/>
      </appSettings>
      
    </configuration>
    

    四、优点

      让类的实例化变的更加灵活,代码解耦和。

  • 相关阅读:
    【JAVA】遍历打印目录结构
    Java多线程设计模式(2)
    MBTI职业性格测试你注定是个程序员?
    基于RMI的即时通讯工具的设计与实现
    你在中国有去过那些地区?
    Java多线程设计模式(4)
    学习Unix/Linux编程要学些什么
    在Ubuntu上用Vbox装XP遇到的几个问题
    Java多线程设计模式(3)
    软件架构发展史
  • 原文地址:https://www.cnblogs.com/wangmei/p/4694235.html
Copyright © 2011-2022 走看看