我有以下分類:C#GetMethod不返回父類的方法
public class A
{
public static object GetMe(SomeOtherClass something)
{
return something.Foo();
}
}
public class B:A
{
public static new object GetMe(SomeOtherClass something)
{
return something.Bar();
}
}
public class C:B
{
}
public class SomeOtherClass
{
}
鑑於SomeOtherClass parameter = new SomeOtherClass()
)這個作品:
typeof(B).GetMethod("GetMe", new Type[] { typeof(SomeOtherClass) })).Invoke(null, parameter));
但這:
typeof(C).GetMethod("GetMe", new Type[] { typeof(SomeOtherClass) })).Invoke(null, parameter));
拋出一個NullReferenceException
,而我希望它會調用與上面完全相同的方法。
我試過幾個綁定標誌無濟於事。任何幫助?
這些方法是公共靜態的,我錯誤地鍵入了問題(我認爲我有證據讀它D :)。還是謝謝! –
@SebastiánVansteenkiste:在這種情況下,只需將綁定標誌更改爲包含FlattenHierarchy(以及static和public)即可。 –
非常感謝!對於後代,則:'typeof(C).GetMethod(「GetMe」,BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Static,null,new Type [] {typeof(SomeOtherClass)},null))。Invoke(null ,參數));'做了訣竅。 –