TypeBuilder.InvokeMember 方法

定義

叫用指定的成員。 根據指定繫結器和引動過程屬性的條件約束,所要叫用的方法必須可存取,並提供與指定引數清單最特定的符合項目。

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 的位元旗標。

binder
Binder

使用反映來啟用繫結、強制引數的類型、成員的引動過程,和擷取 MemberInfo 物件的物件。 如果繫結器為 null,則會使用預設繫結器。 請參閱 Binder

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.GetTypeType.GetType 取類型,並在擷取的類型上使用反映。

適用於