长时间没有回顾反射知识了,今天就讲解一下反射的一般第二个用法。

二.对方法,属性等的反射

首先需要写一个测试类,生成.exe或.dll文件。

class Test

{   public Test()//普通构造方法

{   }

public string writeString(string s)//有参方法

{   return "welcome:" + s;  }

public static string staticString(string s)//静态方法

{   return "welcome:" + s;   }

public string writeStringNO()//无参方法

{     return "welcome:chen" ;  }}

找出.exe文件,为了方便寻找,可以暂时复制在桌面上。

常规调用测试类方法,采用创建一个对象并实例化来引用方法,比如:

Test t=new Test();

t.writeString();

反射调用(两个项目之间调用):

再创建一个ConsoleApplication2 控制台程序。

先引用命名空间 using System.Reflection;

ConsoleApplication2:

//使用反射

static void Main(string[] args)

{

Assembly ass;//程序集

Type ty;//相当于类

Object ob;//相当于对象

string path = @"C:\Users\Shuang\Desktop\ConsoleApplication1.exe";//程序集路径

ass = Assembly.LoadFile(path);//加载程序集

ty = ass.GetType("ConsoleApplication1.Test");//获取Test类名;格式:"命名空间.类名"

MethodInfo meth = ty.GetMethod("writeString");//获取方法,格式:"方法名"     有参数

MethodInfo meth1 = ty.GetMethod("writeStringNO");//获取方法,格式:"方法名"  无参数

MethodInfo meth2 = ty.GetMethod("staticString");//获取方法,格式:"方法名"   静态

ob = ass.CreateInstance("ConsoleApplication1.Test");//创建一个对象, 格式:"命名空间.类名"

string[] canshu = { "chen1"};//参数数组

string res = (string)meth.Invoke(ob,canshu);//获取结果;格式:对象,参数(参数为object数组)    有参数

string res1 = (string)meth1.Invoke(ob, null);//获取结果;格式:对象,参数(参数为object数组)    无参数

string res2 = (string)meth2.Invoke(null, canshu);///获取结果;格式:对象,参数(参数为object数组)    静态

Console.Write("有参:"+res+"\n");

Console.Write("无参:" + res1 + "\n");

Console.Write("静态:" + res2);

Console.ReadLine();

}

 

 

C#反射(二)的更多相关文章

  1. java反射(二)--反射应用案例

    一.反射实例化对象 经过一系列的分析之后发现虽然可以获取Class类的实例化对象,但是依然觉得这个对象的获取意义不是很大,因此可以通过以下几个案例去理解反射的核心意义--反射实例化对象:获取Class ...

  2. C#反射(二) 【转】

    如果没有看<C#反射(一)>.建议先看<C#反射(一)>再看这一篇.上一篇文章发表,有人评论我所写的东西比较基础.其实我也知道我也只不过是在写最基础的语法而已,之所以写它是因为 ...

  3. 深入分析Java反射(二)-数组和枚举

    前提 Java反射的API在JavaSE1.7的时候已经基本完善,但是本文编写的时候使用的是Oracle JDK11,因为JDK11对于sun包下的源码也上传了,可以直接通过IDE查看对应的源码和进行 ...

  4. JAVA中反射机制二

    声明:如需转载请说明地址来源:http://www.cnblogs.com/pony1223 反射二 利用反射创建对象 1.利用反射创建对象,首先我们创建一个类,类里面,我们知道构造函数有默认的构造函 ...

  5. C# 反射之调用方法谈

    反射的定义 反射提供了描述程序集.模块和类型的对象(Type 类型). 可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性. 如果代码中使用了特性 ...

  6. java反射快速入门(一)

    本文会从以下几个方面讲起 ① 反射的简单解释 ② java反射的API接口 及 demo ③ 反射的优缺点.应用场景 一.什么是反射? java反射:在程序运行中动态获取类的信息,及动态调用对象的方法 ...

  7. 反射(4)反射性能问题:直接调用vs反射调用

    很多人都说使用反射会有性能问题,那到底会比直接调用慢多少呢,下面就来测试一下. 直接调用vs反射调用 下面就来写个demo来验证下直接调用和反射调用的性能差异,代码如下: namespace Cons ...

  8. 已看1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。[泛型]\

    1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等.[泛型]\1* ...

  9. Java反射Reflect的使用详解

    目录 一. 什么是反射 二. 反射的基础Class 2.1 Class类概述 2.2 Class类对象获取的三种方式 三. 反射-构造函数 3.1 getDeclaredConstructor(Cla ...

随机推荐

  1. Linux常用的命令收藏

    摘要 Linux现在已经是大部分草根站长不可缺少的一部分,想要维护好你的网站就必须懂得常用的linux命令,这个可以加快你对服务器的维护,运营:同时Linux在嵌入式系统开发中有不可替代的优势,越来越 ...

  2. Python NLP库top6的介绍和比较

    文章来源:ActiveWizards https://medium.com/activewizards-machine-learning-company/comparison-of-top-6-pyt ...

  3. JVM中内存分配策略及堆和栈的比较

    最近愈发对JVM底层的运行 原理产生了兴趣,遂查阅相关资料以备忘. 内存分配策略 根据编译原理的观点,程序运行时的内存分配,有三种策略,分别为静态的.堆式的.栈式的. 静态存储分配指的是在编译时就能确 ...

  4. 【Ubuntu】常用命令汇总,整理ing

    Ubuntu 常用命令(在此页面中Ctrl+F即可快速查找) 在Ubuntu系统使用过程中,会不断地接触到命令行操作,下面对一些常用的命令进行汇总,方便查找. 1.文件操作 1.1 文件复制拷贝 cp ...

  5. @RequestBody和@RequestParam的使用详解

    此次分享转载至:https://blog.csdn.net/justry_deng/article/details/80972817 这边文章讲解的比较透彻,主要是在springboot项目中进行使用 ...

  6. 1.Metasploit介绍与基本命令

    Metasploit体系框架介绍 Metasploit是目前世界上领先的渗透测试工具,也是信息安全与渗透测试领域最大的开源项目之一.它彻底改变了我们执行安全测试的方式. Metasploit之所以流行 ...

  7. P3381 【模板】最小费用最大流(MCMF)

    P3381 [模板]最小费用最大流 题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. 输入格式 第一行包含四个正整数N ...

  8. Lisp-01: 相关开发环境配置部署

    Common Lisp 学习笔记系列01 要学一门编程语言,首先需要将语言的环境配置好.如果想要个直接上手的环境,感谢日本的大神 Shirakumo,打造了一个 Common Lisp 的 IDE - ...

  9. 使用原生方法查询指定元素是否包含指定className

    如果我们要查找某个指定元素是否包含指定的className,可以使用以下方法 eg:document.getElementById('Id').classList.contains('要查询的clas ...

  10. 数据挖掘 决策树 Decision tree

    数据挖掘-决策树 Decision tree 目录 数据挖掘-决策树 Decision tree 1. 决策树概述 1.1 决策树介绍 1.1.1 决策树定义 1.1.2 本质 1.1.3 决策树的组 ...