在给定类型名称的情况下调用静态函数

Adi*_*be7 1 c# reflection static-methods

我有一个包含类型名称的字符串.我想在反射中获取类型,并调用静态方法.我想尽可能简化代码.这样的事情:

public class MyClass {    
          static int foo() 
          {
             return 7;
          }; 
}

var MyClassType = Type.GetType("MyClass"); 
// your help here! 
int res = (MyClassType).foo();
Run Code Online (Sandbox Code Playgroud)

谢谢!

Mat*_*son 5

您需要指定正确的绑定标志才能使其工作:

// 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);
Run Code Online (Sandbox Code Playgroud)