最近剛剛開始用反射做項目,遇到一個小的知識點,記錄一下。
c#反射查找方法時,默認只能查到public方法。如果想要查找private方法,需要設定BindingFlags.
即:
BindingFlags.Public|BindingFlags.Instance 默認查找public、instance內容。
BindingFlags.NonPublic|BindingFlags.Instance 查找nonpublic、instance內容
另外,BindingFlags.Instance和BindingFlags.Static二者必須有一項或者都有。如果你的類是instance,就選instance,反之選static。如果兩者都不選,是找不到任何方法的。
當然,穩妥的辦法是全寫。即:
BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Static.
當然,BindingFlags還有其他用法,請參考CSDN文檔。