C#控制台 activator与invoke,利用反射调用一个类的有参数方法

1 code

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Reflection;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7
 8 namespace ConsoleApplication1
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             //要调用的函数所在的类是 person
15             Type tp = typeof(Person);
16
17             //                         方法的名字是:HelloWorld
18             MethodInfo method = tp.GetMethod("HelloWorldSuper");
19
20             //创造一个实例
21             object obj = Activator.CreateInstance(tp);
22
23             //调用函数
24             method.Invoke(obj, new object[] { 1,"2"});
25             Console.ReadKey();
26         }
27     }
28
29     public class Person
30     {
31         public void HelloWorld()
32         {
33             Console.WriteLine("HelloWorld");
34         }
35         public void HelloWorldSuper(int a,string b)
36         {
37             Console.WriteLine("HelloWorld HelloWorld");
38         }
39     }
40 }

2 show

时间: 2024-09-29 05:33:20

C#控制台 activator与invoke,利用反射调用一个类的有参数方法的相关文章

C#控制台 activator与invoke,利用反射调用一个类的无参数方法

1 code 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Reflection; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace ConsoleApplication1 9 { 10 class Program 11 { 12 static void Main(string[] a

利用反射获取一个类实例的所有属性名称和值 拼接为字符串

需要一个功能:获取一个类实例的所有属性名称和值并拼接为字符串,然后进行处理.代码保存在此以备后用. 建立一个类文件ClassToString.cs 以下代码可以直接使用,参数为一个类的实例,返回的是一个数组,[0]为属性名的拼接,[1]为属性Value的拼接. 对于类的属性类型没有限制,但是如果没有全部赋值的话,Value会范围默认值, 比如int为0,String为空,DateTime为0001/1/1 0:00:00,0,0,0 需要有需要的话可以在拼接的时候判断进行相应处理 ClassTo

如何(通过反射调用一个类的私有方法)

1 public class Calcu { 2 3 private int add(int a,int b) { 4 return a+b; 5 } 6 } public class CalcuTest{ public static void main(String[] args) { Calcu ca=new Calcu(); Class<Calcu> clazz=Calcu.class; Object res=null; try { //返回一个方法对象, Method m=clazz.

Java反射(三)利用反射调用方法

有Student类: package testreflection; public class Student{ private static int count; private String stuNum; public Student(String stuNum) { // TODO Auto-generated constructor stub this.stuNum = stuNum; count++; } public String getStuNum() { return stuN

反射学习(三)--------利用反射调用方法

利用反射调用方法 C1 newC1Instance = new C1(); var funM = newC1Instance.GetType().GetMethod("fun", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); object[] para = { }; if (funM == null) { Console.Write("error, fu

利用反射调用注解

利用反射调用注解 package net.jeesite.java; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; @Retention(value = RetentionPolicy.RUNTIME) @interface Meta { String length(); String name(); int

C#反射调用程序集类中方法

建立类 class OperatorClass { /// <summary> /// 加法 /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <returns></returns> /// public static int Add(int x, int y) { r

利用反射模拟一个spring的内部工作原理

这个简单的案例是实行了登录和注册的功能,没有链接数据库. 在bean中id 是唯一的,id和name的区别在于id不能用特殊字符而name可以用特殊字符,比如:/-\.... 1 package com.obtk.reflect; 2 3 public class Logon { 4 /** 5 * 帐号密码长度大于六位字符就成功,否则失败! 6 * */ 7 public String select(String name, String pass) { 8 if (name.length()

PHP通过反射方法调用执行类中的私有方法

PHP 5 具有完整的反射 API,添加了对类.接口.函数.方法和扩展进行反向工程的能力. 下面我们演示一下如何通过反射,来调用执行一个类中的私有方法: <?php //MyClass这个类中包含了一个名为myFun的私有方法class MyClass {        private $tmp = 'hello';        private function myFun()    {        echo $this->tmp . ' ' . 'world!';    }} //通过类