【发布时间】:2012-09-03 01:30:57
【问题描述】:
我在尝试动态调用我的课程时遇到问题。这是我的示例代码:
类:
namespace TestUseCase
{
public class UseCase11
{
public UseCase11()
{
}
public string init()
{
return "aa.aspx";
}
}
}
类的调用方法:
private void dynamicExecution(string ClassName, string FunctionName)
{
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();
Object[] para = new Object[1];
para[0] = null;
object dynMyClass = assembly.CreateInstance(ClassName);
dynMyClass.GetType().GetMethod(FunctionName).Invoke(dynMyClass, para);
}
用法:
dynamicExecution("TestUseCase.UseCase11", "init");
不幸的是,结果总是null。我该如何解决这个问题?
【问题讨论】:
-
尝试,在您的 dynamicExecution 方法中:
assembly.GetTypes().Where(m => m.Name == "UseCase11").Select(x => x.FullName).FirstOrDefault();看看您是否在正确的程序集中并写下正确的类型全名。 -
请帮助我了解您的代码,我在我的方法中添加此代码的位置,以及您的代码中的 WHERE 是什么?!!
-
把它放在你的 dynamicExecution 方法中(使用
var test = <mycode>;)。我在测试中没有得到任何结果,那是装配问题。如果有结果,请查看 test 的值。
标签: c# class function reflection call