知识大全 学习反射中的动态创建对象

Posted

篇首语:寸阳分阴须爱惜,休负春色与时光。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 学习反射中的动态创建对象相关的知识,希望对你有一定的参考价值。

  Assembly的CreateInstance有三个重载 第一个参数需要是一个字符串表示的完整的类名 第二个参数是一个bool类型 如果为true 表示对第一个参数不区分大小写

  第三个 影响执行搜索的方式的位屏蔽 此值是 System Reflection BindingFlags 中的位标志的组合

  

  //   binder:   一个启用绑定 参数类型强制 成员调用以及通过反射进行 MemberInfo 对象检索的对象

  如果 binder 为 null 则使用默认联编程序

  //   args:  Object 类型的数组 包含要传递给构造函数的参数 此参数数组在数量 顺序和类型方面必须

  与要调用的构造函数的参数匹配 如果需要默认的构造函数 则 args 必须是空数组或 null

  //   culture:   用于控制类型强制的 CultureInfo 的实例 如果这是 null 则使用当前线程的 CultureInfo (例如 这对于将表示    的 String 转换为

  Double 值是必需的 因为不同的区域性以不同的方式表示

  //   activationAttributes:    包含一个或多个可以参与激活的属性的数组 通常为包含单个 System Runtime Remoting Activation UrlAttribute 对象的数组

  System Runtime Remoting Activation UrlAttribute 指定激活远程对象所需的 URL 有关客户端激活的对象的详细说明 请参见客户端激活

  Activator类的静态方法CreateInstance

  CreateInstance的第一个参数说明是程序集的名称 为null时表示当前程序集 第二个参数说明要创建的类型名称 Activator CreateInstance返回的是一个ObjectHandle对象 必须进行一次Unwrap()才能返回Object类型 进而可以强制转换成我们需要的类型(本例中是MathClass) ObjectHandle包含在System Runtime Remoting命名空间中 可见它是Remoting相关的 实际上ObjectHandle类只是一个对原类型进行了一个包装以便进行封送

  无参构造

  有参构造

  动态调用

   使用InvokeMember调用方法

  InvokeMember( 方法名 BindingFlags InvokeMethod null 对象实例 方法参数);

  静态 InvokeMember( 方法名 BindingFlags InvokeMethod null 类型Type 方法参数);

   MethodInfo Invoke调用方法

  MethodInfo mi = t GetMethod( 方法名 BindingFlags Instance | BindingFlags Public);

  mi Invoke(对象实例 null);

  静态

  MethodInfo mi = t GetMethod( 方法名 BindingFlags Static | BindingFlags Public);

  Mi Invoke(null 方法参数 );

cha138/Article/program/net/201311/11935

相关参考

知识大全 VB中用ADO对象动态创建数据库和表

VB中用ADO对象动态创建数据库和表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  :问题的提出

知识大全 java反射机制

  JAVA反射机制是在运行状态中对于任意一个类都能够得到这个类的所有属性和方法;对于任意一个对象都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制 

知识大全 动态代码的使用(反射和动态生成类)

  在软件开发尤其是框架和底层开发时为了更灵活的控制代码常常需要进行一些动态的操作比如根据用户的输入等动态的调用类中的方法或者根据数据库表结构用户要求动态的生成一些类然后再动态的调用类中的方法当然使用

知识大全 delphi编程实现动态创建别名

  对于BDE会话期对象来说BDE别名特别重要许多方法都需要传递一个数据库的别名作为参数TSession提供了管理BDE别名的功能  但是作者往往等到要发布程序时才发现你的程序由于找不到别名而无法运行

知识大全 Struts架构中的Session对象创建和控制

Struts架构中的Session对象创建和控制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 详解.NET中的动态编译技术[3]

详解.NET中的动态编译技术[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ·创建另外一个

知识大全 Java动态程序设计——反射介绍

Java动态程序设计——反射介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java动态程序

知识大全 JVM技术,反射与动态代理

JVM技术,反射与动态代理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java程序的工作机制

知识大全 .NET简谈反射(动态调用)

.NET简谈反射(动态调用)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们继续C#基础知识

知识大全 JavaME程序 Run Anywhere-- 利用反射机制来动态加载声

JavaME程序RunAnywhere--利用反射机制来动态加载声  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一