使用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
我尝试了两种方式,但它们都有效。