TypeBuilder.InvokeMember 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
叫用指定的成員。 根據指定繫結器和引動過程屬性的條件約束,所要叫用的方法必須可存取,並提供與指定引數清單最特定的符合項目。
public:
override System::Object ^ InvokeMember(System::String ^ name, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, System::Object ^ target, cli::array <System::Object ^> ^ args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ namedParameters);
public override object? InvokeMember (string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
public override object InvokeMember (string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
Public Overrides Function InvokeMember (name As String, invokeAttr As BindingFlags, binder As Binder, target As Object, args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, namedParameters As String()) As Object
參數
- name
- String
要叫用之成員的名稱。 可以是建構函式、方法、屬性或欄位。 您必須指定適當的引動過程屬性。 請注意,將空字串當做成員名稱傳遞,可叫用類別的預設成員。
- invokeAttr
- BindingFlags
引動過程屬性。 必須是來自 BindingFlags
的位元旗標。
- target
- Object
要在其上叫用指定成員的物件。 如果是靜態成員,則會忽略這個參數。
- args
- Object[]
引數清單。 這是物件陣列,其中包含所要叫用之成員的參數數目、順序和類型。 如果沒有任何參數,則這應該是 null。
- modifiers
- ParameterModifier[]
與 args
長度相同的陣列,其中的項目代表與所要叫用的成員之引數關聯的屬性。 參數在中繼資料內具有與其相關聯的屬性。 許多互通性服務都會使用這些屬性。 如需詳細資訊,請參閱中繼資料規格。
- culture
- CultureInfo
CultureInfo
的執行個體,用於管理類型的強制型轉。 如果這是 null,會使用目前執行緒的 CultureInfo
。 (請注意,要將代表 1000 的 String 轉換成 Double 值時,這是必要的,因為 1000 的表示方式會因不同文化特性而有所不同)。
- namedParameters
- String[]
namedParameters
陣列中的每個參數會在 args
陣列中取得對應項目的值。 如果 args
的長度大於 namedParameters
的長度,則會依序傳遞其餘引數值。
傳回
傳回所叫用之成員的傳回值。
例外狀況
這個方法目前不支援不完整的類型。
備註
如果方法宣告中的參數數目等於指定自變數清單中的自變數數目,而且系結器可以將每個自變數的類型轉換成參數的類型,就會叫用方法。
系結器會尋找所有相符的方法。 這些方法是根據 (BindingFlags.InvokeMethod、BindingFlags.GetProperties ) 等要求的系結類型來找到。 方法集會依名稱、自變數數目和系結器中定義的一組搜尋修飾詞進行篩選。 選取 方法之後,將會叫用它。 此時會檢查輔助功能。 搜尋可以根據與 方法相關聯的輔助功能屬性來控制搜尋哪一組方法。 方法 IBinder.BindToMethod
負責選取要叫用的方法。 默認系結器會選取最特定的相符專案。
注意
完全信任的程式代碼會忽略存取限制。 也就是說,每當程序代碼完全信任時,可以使用 Reflection 來存取和叫用私人建構函式、方法、字段和屬性。
目前不支援這個方法。 您可以使用 或 Assembly.GetType 擷取類型Type.GetType,並在所擷取的類型上使用反映。