繁体   English   中英

使用反射调用 static class 的 static 方法

[英]Call a static method of a static class using reflection

我试图像这样调用 static 方法:

Assembly myAssembly = Assembly.LoadFrom(filePath);
Type Mytype = myAssembly.GetType("MyClass");
string returnedValue = Mytype.GetMethod("MyMethod").Invoke(null, null).ToString();
MessageBox.Show(returnedValue);

但我收到此错误:Object 引用未设置为 object 的实例。

internal static class MyClass
{
internal static string MyMethod(int param1)
{
return "HI"
}
}

请帮我解决这个问题,问候。

首先,您需要传递正确的BindingFlags以便可以找到您的方法:

var methodInfo = typeof(MyClass).GetMethod("MyMethod", 
                                           BindingFlags.Static |
                                           BindingFlags.NonPublic);

然后您需要将正确的参数传递给Invoke function:

methodInfo.Invoke(null, new object [] {1})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM