天天看點

BindingFlags使用注意點

為了擷取傳回值,必須指定 BindingFlags.Instance 或 BindingFlags.Static。

指定 BindingFlags.Public 可在搜尋中包含公共成員。

指定 BindingFlags.NonPublic 可在搜尋中包含非公共成員(即私有成員和受保護的成員)。

指定 BindingFlags.FlattenHierarchy 可包含層次結構上的靜态成員。

下列 BindingFlags 修飾符标志可用于更改搜尋的執行方式:

BindingFlags.IgnoreCase,表示忽略 name 的大小寫。

BindingFlags.DeclaredOnly,僅搜尋 Type 上聲明的成員,而不搜尋被簡單繼承的成員。

可以使用下列 BindingFlags 調用标志表示要對成員采取的操作:

CreateInstance,表示調用構造函數。忽略 name。對其他調用标志無效。

InvokeMethod,表示調用方法,而不調用構造函數或類型初始值設定項。對 SetField 或 SetProperty 無效。

GetField,表示擷取字段值。對 SetField 無效。

SetField,表示設定字段值。對 GetField 無效。

GetProperty,表示擷取屬性。對 SetProperty 無效。

SetProperty 表示設定屬性。對 GetProperty 無效。

BindingFlags.CreateInstance : 表示調用構造函數。忽略 name。對其他調用标志無效

BindingFlags.DeclaredOnly : 僅搜尋 Type 上聲明的成員,而不搜尋被簡單繼承的成員

BindingFlags.Default :沒有任何标志

BindingFlags.Instance : 對象執行個體

BindingFlags.Static : 靜态成員

BindingFlags.Public : 指可在搜尋中包含公共成員

BindingFlags.NonPublic : 指可在搜尋中包含非公共成員(即私有成員和受保護的成員)

BindingFlags.FlattenHierarchy : 指可包含層次結構上的靜态成員

BindingFlags.IgnoreCase : 表示忽略 name 的大小寫

繼續閱讀