• Reflection反射


    Reflection

    1.正常的调用
    //1.加载程序集 参数:【完整程序集名称】
    Assembly assembly = Assembly.Load("Common");

    //2.获取类型 参数:【完整类型名称】
    Type type = assembly.GetType("Common.Implemented.MySqlHelper");

    //3.创建类型实例
    object instance = Activator.CreateInstance(type);

    //4.类型转换【依赖抽象】
    ISqlHelper sqlHelper = instance as ISqlHelper;

    //5.执行方法
    sqlHelper.Query();
    2.多个构造函数调用
    //1.加载程序集 【完整程序集名称】
    Assembly assembly = Assembly.Load("Common");
    //2.获取类型 【完整类型名称】
    Type type = assembly.GetType("Common.Implemented.MySqlHelper");
    //3.创建类型实例【默认无参构造函数】
    object oTest1 = Activator.CreateInstance(type);
    //调用有参数的构造函数 【输入构造函数参数】
    object oTest3 = Activator.CreateInstance(type, new object[] { "123123" });
    3.泛型调用
    //1.加载程序集 【完整程序集名称】
    Assembly assembly = Assembly.Load("Common");
    //2.获取类型 【完整类型名称】[泛型`泛型个数]
    Type type = assembly.GetType("Common.Implemented.MyGenericSqlHelper`1");
    //3.指定 泛型类型
    Type typeMake = type.MakeGenericType(new Type[] { typeof(int) });
    //4.创建类型 实例化对象【默认构造函数】
    object oTest1 = Activator.CreateInstance(typeMake);
    //调用有参数的构造函数【输入构造函数参数】
    object oTest3 = Activator.CreateInstance(typeMake, new object[] { "123123" });
    4.调用私有构造函数--破坏单例
    //1.加载程序集 【完整程序集名称】
    Assembly assembly = Assembly.Load("Common");
    //2.获取类型 【完整类型名称】[泛型`泛型个数]
    Type type = assembly.GetType("Common.Implemented.Singleton");
    //3.创建类型 实例化对象【默认构造函数】私有的
    object oTest1 = Activator.CreateInstance(type, true);

     

  • 相关阅读:
    一,初次接触html+css需要注意的小问题
    Pycharm如何在控制台输出窗口中使用Python解释器
    Silver Cow Party POJ
    Constructing Roads POJ
    小希的迷宫 HDU
    Wireless Network POJ
    Scanner读取记事本文件内容为空的解决办法
    mysql limit的使用方法
    Can you find it? HDU-2141 (二分查找模版题)
    【2028-07-18】精力是有限的,但智慧是无限的
  • 原文地址:https://www.cnblogs.com/vsnb/p/14499734.html
Copyright © 2020-2023  润新知