C#使用反射执行一个类中的方法
展开全部
using System.Reflection;
public class PTtemplate
{
public string Fanshefangfa(int a)
{
return Execute("Factory", "classff", "abc", a.toString());
}
//参数分别是:命名空间、类名、方法名、参数列表(多个参数可用,分隔)
public string Execute(string name_space, string className, string MethodName, string pstr)
{
//先从程序集中查找所需要的类并使用系统激活器创建实例
object instance = Assembly.Load(name_space).CreateInstance(name_space + "." + className);
Type type = instance.GetType();
object[] parameters = null;
if (pstr != "")
{
string[] pa = pstr.Split(',');
parameters = new object[pa.Length];
for (int i = 0; i < pa.Length; i++)
{
if (StrChangeBLL.IsInt(pa[i]))
parameters[i] = int.Parse(pa[i]);
else
parameters[i] = pa[i];
}
}
//查找指定的方法,然后返回结果
MethodInfo methodinfo = type.GetMethod(MethodName);
return methodinfo.Invoke(instance, parameters).ToString();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询