调用给定类型名称的静态函数
本文关键字:静态函数 类型 调用 | 更新日期: 2023-09-27 18:26:26
我有一个包含类型名称的字符串。我想在反射中获取类型,并调用一个静态方法。我希望代码尽可能简单。像这样的东西:
public class MyClass {
static int foo()
{
return 7;
};
}
var MyClassType = Type.GetType("MyClass");
// your help here!
int res = (MyClassType).foo();
谢谢!
您需要指定正确的绑定标志才能实现这一点:
// NOTE: Use full name for "MyClass", incuding any namespaces.
var myClassType = Type.GetType("MyClass");
int res = (int)myClassType.GetMethod("foo", BindingFlags.NonPublic | BindingFlags.Static).Invoke(null, null);
这样尝试:
int res = Type.GetType("MyClassType").GetMethod("foo").Invoke(null, null);