为了账号安全,请及时绑定邮箱和手机立即绑定

c#反射调用函数?

/ 猿问

c#反射调用函数?

JVM
HUH函数 2019-02-05 14:06:05

简单的说一个类A里有若干的私有函数,ADD、KEEP等等很多个,以后可能还会添加,这些函数都没有参数也没有返回值。
如何在A里加一个公有函数DO(string sName),实现根据sName函数名调用这些函数。

查看完整描述

3 回答

?
蝴蝶不菲

完整的代码:
using System.Reflection;
namespace ReflectionDllDemo
{
class Program
{
static void Main(string[] args)
{
var asm = Assembly.LoadFile(@"d:\3_code\DotNet\DllDemo\DllDemo\bin\Debug\DllDemo.dll");
var type = asm.GetType("DllDemo.ClassGreenerycn");
var instance = asm.CreateInstance("DllDemo.ClassGreenerycn");
type.GetProperty("Name").SetValue(instance, "http://greenerycn.cnblogs.com", null);
type.GetProperty("IsTest").SetValue(instance, true, null);
var method = type.GetMethod("Hello");
method.Invoke(instance, null);
}
}
}



查看完整回答
反对 回复 2019-03-18
?
一只名叫tom的猫

方法可以写成这样:
public void Do(string sName)
{
MethodInfo dynMethod = this.GetType().GetMethod(sName, BindingFlags.NonPublic | BindingFlags.Instance);
dynMethod.Invoke(this, null);
}

查看完整回答
反对 回复 2019-03-18
?
倚天杖

代码如下:

public void Do(string sName,object[] methodParams)
{
MethodInfo dynMethod = this.GetType().GetMethod(sName, BindingFlags.NonPublic | BindingFlags.Instance);
dynMethod.Invoke(this, methodParams);
}

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 461 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信