C#反射调用类的私有方法

Posted xiefengdaxia123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#反射调用类的私有方法相关的知识,希望对你有一定的参考价值。

void Main()

	var type = typeof(StockClass);
	type.Dump();

	var fields=type.GetFields(BindingFlags.Instance|BindingFlags.NonPublic).Dump("字段");
	var members = type.GetMethods().Dump("方法");

	//调用私有的构造函数,获得实例化对象
	object obj=type.GetConstructors(BindingFlags.Instance|BindingFlags.NonPublic)[0].Invoke(null);
	
	//获得私有方法
	var method = type.GetMethod("GetStr", BindingFlags.Instance | BindingFlags.NonPublic).Dump();
	
	//私有方法传参调用
	object[] parammeter="xie";
	method.Invoke(obj,parammeter).Dump();


public class StockClass

	StockClass()
		
	
	//字段
	static int a;
	public int aa;
	private int b;
	protected int c;
	//属性
	public int d  get; set; 
	public static double e  get; set; 
	
	//方法
	private void SayHello()
		Console.WriteLine("Hi!");
	
	private string GetStr(string a)
	
		return("Hi!"+a);
	
	public void SayMoring()
		Console.WriteLine("good Moring!");
	

  技术图片

 

技术图片

 

以上是关于C#反射调用类的私有方法的主要内容,如果未能解决你的问题,请参考以下文章

java利用反射来调用一个类的私有方法

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

java反射访问私有方法的的问题

使用反射机制调用属性和私有成员与代理模式的介绍

C#反射实例化类并调用类的方法

使用反射机制调用属性和私有成员与代理模式的介绍