使用reflection和c#调用静态方法时出现问题

我有这两个class:

Item : BusinessBase where T : Item { public static T NewItem() { //some code here } } Video : Item  

现在我想使用reflection在类Video上调用NewItem()方法。 当我尝试这个:

 MethodInfo inf = typeof(Video).GetMethod("NewItem", BindingFlags.Static); 

执行此行后的对象inf仍为null。 我可以在类Video上调用静态NewItem()方法吗?

您需要指定BindingFlags。 Public和BindingFlags。 FlattenHierarchy以及BindingFlags。 静态

 MethodInfo inf = typeof(Video).GetMethod("NewItem", BindingFlags.Static | BindingFlags.Public | BindingFlags.FlattenHierarchy); 

或者,您可以从声明类型获取方法而不使用BindingFlags。 FlattenHierarchy

 MethodInfo inf = typeof(Item 

我尝试了两种方式,但它们都有效。