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>
    

    四、优点

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

  • 相关阅读:
    uva 12096
    uva 705
    uva 657
    uva 10129
    uva 816 BFS求最短路的经典问题……
    uva 1103
    uva 699
    这是昨天的内容,就这样慢慢整吧,然后,荒废了好多时间啊!!
    今天就这么乱糟糟的过啦~刚刚接触html,就稍微写了一下,明天加油,今天直接贴图
    uva 548 tree
  • 原文地址:https://www.cnblogs.com/wangmei/p/4694235.html
Copyright © 2011-2022 走看看