首页 > 其他分享 >2.反射

2.反射

时间:2023-09-04 10:24:56浏览次数:27  
标签:反射 assembly object Common Assembly type 构造函数

二 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);

标签:反射,assembly,object,Common,Assembly,type,构造函数
From: https://www.cnblogs.com/vsnb/p/15867678.html

相关文章

  • 反射
    反射简介:反射指程序可以访问、检测和修改它本身状态或行为的一种能力。程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或......
  • 反射和动态代理
    反射允许对成员变量,成员方法和构造方法的信息进行编程访问。1、获取Class对象(字节码文件对象)的三种方式①、Class.forName(“全类名”)(在源代码阶段使用)②、类名.class (在加载阶段中使用)③、对象.getClass() (在运行阶段使用)publicclassTest{publicstat......
  • 25. 反射
    一、什么是反射  反射,本质上就是通过字符的形式去操作对象/模块中的成员。在Python中,我们可以通过三个内置函数去实现反射相关的功能。getattr(object,name)#获取对象中的成员setattr(object,name,value)#设置对象中的成员hasattr(object,......
  • Java的反射机制
    JAVA反射机制:程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。尽管在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关机制:Reflection(反射机制)。概述:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对......
  • 反射
    Java的反射是指在运行时动态地获取类的信息、调用对象的方法和访问对象的属性。通过反射,可以在编译时不知道具体类的情况下,动态地创建对象、调用方法和访问属性。Java反射的核心是java.lang.reflect包中的类和接口。以下是一些常用的反射类和方法的详解:Class类:java.lang.Class......
  • C# 反射
    ​反射是一种动态分析程序集、模块、类型、字段等目标对象的机制,它的实现依托于元数据。元数据是存储在PE文件中的数据块,它详细记录了程序集或模块内部的结构、引用的类型和程序集和清单一、加载dll,读取相关信息//加载程序集Assemblyassembly=Assem......
  • 通过matlab模拟光线在三维空间中的传播路径并根据反射点进行三维空间建模
    1.算法理论概述      光线在三维空间中的传播路径涉及到光学、几何学等多个领域,是计算机图形学和计算机视觉等领域中的重要问题之一。本文将从专业角度详细介绍模拟光线在三维空间中的传播路径,包括多次反射情况,包括实现步骤和数学公式的详细介绍。 一、概述     ......
  • java高频面试题(反射、对象拷贝)
    java高频面试题(反射、对象拷贝)什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力Java反射:在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能:在运行时判断任意一个......
  • 路由反射器
    在使用BGP路由协议的网络中,为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。假设在一个AS内部有n台路由器,那么应该建立的IBGP连接数就为n(n-1)/2.当IBGP对等体数目很多时,对网络资源和CPU资源的消耗都很大。路由反射器的定义利用路由反射可以解决这一问题。在......
  • BGP联盟和路由反射器
    在谈BGP联盟和BGP反射器这两个技术前,我们先来了解一下BGP中存在的路由黑洞问题。什么是路由黑洞呢?我们以下面这个拓扑来详细的介绍一下:这是一个典型的BGP应用组网。图中,有3个AS,AS之间运行BGP协议。AS65008域内运行OSPF协议。R1和R5上只运行BGP协议,R2和R4上运行OSPF和BGP协议,R3......