2011-08-17 82 views

回答

8

如何判斷MemberInfo是否是內部的?

你不能因爲這個問題實際上沒有意義。

成員信息可能表示一個屬性,並且屬性沒有可訪問性。 (吸氣劑和接受器具有輔助功能,但因爲它們可能不同,所以該屬性不具有輔助功能。)

由於存在無法訪問的成員,因此無法確定成員的可訪問性只是從一個MemberInfo。你需要把它變成一個FieldInfo或者TypeInfo或者它實際上是什麼,然後問這個對象什麼是可訪問性。 (當然,如果它是一個PropertyInfo,那麼你必須弄清楚你對getter還是setter感興趣,並獲得與之相關的方法信息。)

+0

非常有幫助謝謝。是['IsAssembly'](http://msdn.microsoft.com/en-us/library/system.reflection.methodbase.isassembly(v = VS.100).aspx)正確的屬性? – smartcaveman

+1

@smartcaveman:是的,「assembly」是Reflection如何引用C#所謂的「內部」和VB調用「朋友」的可訪問性。請注意,對於IsAssembly,「受保護的內部」/「受保護的朋友」字段將* not *返回true。閱讀MSDN文檔以獲取詳細信息。 –