透過反射呼叫靜態方法
問題:
您在命名空間mySolution.Macros,每個包含靜態方法例如:
public static class Indent { public static void Run() { // implementation } }
您的目標是使用反射呼叫這些方法,即使它們是靜態的。
解:
呼叫靜態具有反射的方法,同時保留其靜態性質,請採用以下方法:
foreach (var tempClass in macroClasses) { // Note that the first argument is ignored for static methods tempClass.GetMethod("Run").Invoke(null, null); }
如文件中所述MethodInfo.Invoke,第一個參數對於靜態方法來說是多餘的,因此您可以安全地傳遞null。
綁定標誌:
需要注意的是,您可能需要在調用方法時指定綁定標誌,如評論中所建議:
tempClass.GetMethod("Run", BindingFlags.Public | BindingFlags.Static).Invoke(null, null);
這確保該方法是公共的並且static,這是正確調用所必需的。
以上是如何在 C# 中使用反射呼叫靜態方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!