【发布时间】:2015-06-24 08:32:26
【问题描述】:
所以我正在使用这个从我的 dll 中调用一个方法。
string sp = "dynamicmethodname";
Type TypeObj = typeof(DLLclass);
Object MyObj = Activator.CreateInstance(TypeObj);
TypeObj.InvokeMember(sp, BindingFlags.InvokeMethod | BindingFlags.Default, null, MyObj, new Object[] { gp });
如果我的方法就在我的公共类之下,它将起作用。但是当我尝试做这样的事情时。
public class Test {
public static class Met1{
public static void _Validate(string gp){
functions here.....
}
}
}
invokemember 方法将不再到达我的 _Validate 方法。我想知道为什么它不再起作用了。
【问题讨论】:
-
您不能创建静态类的实例 -
Activator.CreateInstance真的有效吗? -
如果你想调用静态类的方法,你可以直接使用 invoke (并将 null 传递给实例参数):见这里stackoverflow.com/questions/614863/activator-and-static-classes
-
@Charleh Yah 如果我的方法就在我的公共类测试之下,它就可以工作。但是我需要为我的方法传递参数...
-
您仍然可以使用 Invoke...msdn.microsoft.com/en-us/library/… 传递参数 - 更具体地说,这个重载:msdn.microsoft.com/en-us/library/4k9x6bc0.aspx,
Object[]是参数..
标签: c# invokemember