簡體   English   中英

使用反射和c#調用靜態方法時出現問題

[英]trouble invoking static method using reflection and c#

我有這兩個班:

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

}

現在我想使用反射在類Video上調用NewItem()方法。 當我嘗試這個:

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

執行此行后的對象inf仍為null。 我可以在類Video上調用靜態NewItem()方法嗎?

你需要指定BindingFlags。 PublicBindingFlags。 FlattenHierarchy以及BindingFlags。 靜態

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

或者,您可以從聲明類型獲取方法而不使用BindingFlags。 FlattenHierarchy

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

我已經嘗試過兩種方式,但它們都有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM