ConstructorInfo.Invoke 方法

定義

叫用這個執行個體所反映的建構函式。

多載

Invoke(Object[])

叫用包含指定參數的執行個體所反映的建構函式,為不常用的參數提供預設值。

Invoke(BindingFlags, Binder, Object[], CultureInfo)

在衍生類別中實作時,請叫用在指定 ConstructorInfo 條件約束 (Constraint) 下有指定引數的這個 Binder 所反映的建構函式。

Invoke(Object[])

來源:
ConstructorInfo.cs
來源:
ConstructorInfo.cs
來源:
ConstructorInfo.cs

叫用包含指定參數的執行個體所反映的建構函式,為不常用的參數提供預設值。

public:
 virtual System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public:
 System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public virtual object Invoke (object[] parameters);
public object Invoke (object?[]? parameters);
public object Invoke (object[] parameters);
override this.Invoke : obj[] -> obj
Public Overridable Function Invoke (parameters As Object()) As Object
Public Function Invoke (parameters As Object()) As Object

參數

parameters
Object[]

符合這個建構函式參數的數目、順序和型別 (在預設繫結器的條件約束下) 的值陣列。 如果這個建構函式不接受任何參數,則使用含零項目或 null 的陣列,例如 Object[] parameters = new Object[0]。 此陣列中任何未明確使用值初始化的物件,都會包含該物件類型的預設值。 對於參考型別項目,這個值為 null。 對於實值型別項目,這個值為 0、0.0 或 false,由特定的項目類型決定。

傳回

與建構函式相關聯的類別之執行個體。

例外狀況

這個類別是抽象的。

-或-

建構函式是類別初始設定式。

建構函式屬私用或受保護,且呼叫端缺少 MemberAccess

注意:在 適用於 Windows 市集應用程式的 .NET可攜式類別庫中,改為攔截基類例外狀況 MemberAccessException

parameters 陣列未包含與這個建構函式所接受型別相符的值。

叫用的建構函式擲回例外狀況。

傳遞的參數數目不正確。

呼叫端沒有必要的程式碼存取權限。

備註

數位中 parameters 元素的數目、類型和順序應該與這個實例所反映之建構函式的參數數目、類型和順序相同。 在呼叫建構函式之前, Invoke 請確定呼叫端具有訪問許可權,並確認參數有效。

完全信任的程式代碼會忽略存取限制。 也就是說,只要程序代碼完全信任,就可以使用反映來存取和叫用私用建構函式、方法、欄位和屬性。

注意

若要建立沒有實例建構函式之實值型別的實例,請使用 CreateInstance 方法。

此方法是下列多載版本的便利方法,使用預設值。 無法覆寫這個方法。

注意

從 .NET Framework 2.0 開始,如果呼叫端已使用 旗標授ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess與呼叫端,而且非公用成員的授與集僅限於呼叫端的授與集或子集,這個方法就可以用來存取非公用成員。 (請參閱 Reflection.) 的安全性考慮 若要使用此功能,您的應用程式應以 .NET Framework 3.5 或更新版本為目標。

適用於

Invoke(BindingFlags, Binder, Object[], CultureInfo)

來源:
ConstructorInfo.cs
來源:
ConstructorInfo.cs
來源:
ConstructorInfo.cs

在衍生類別中實作時,請叫用在指定 ConstructorInfo 條件約束 (Constraint) 下有指定引數的這個 Binder 所反映的建構函式。

public:
 abstract System::Object ^ Invoke(System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public abstract object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public abstract object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);
override this.Invoke : System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public MustOverride Function Invoke (invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object

參數

invokeAttr
BindingFlags

其中一個 BindingFlags 值,指定繫結的型別。

binder
Binder

Binder,會使用反映定義一組屬性和啟用繫結、引數類型強制型轉和成員引動過程。 如果 bindernull,則會使用 Binder.DefaultBinding

parameters
Object[]

Object 型別的陣列,用於比對在 binder 的限制下,這個建構函式的數字、順序和參數的型別。 如果這個建構函式不使用參數,則會使用零元素的陣列或 ,如同在 Object[] parameters = new Object[0] 一樣。 此陣列中任何未明確使用值初始化的物件,都會包含該物件類型的預設值。 對於參考型別項目,這個值為 null。 對於實值型別項目,這個值為 0、0.0 或 false,由特定的項目類型決定。

culture
CultureInfo

CultureInfo,用來管理類型的強制型轉。 如果這是 null,會使用目前執行緒的 CultureInfo

傳回

與建構函式相關聯的類別之執行個體。

例外狀況

parameters 陣列沒有包含符合這個建構函式所接受型別的值,在 binder 的條件約束之下。

叫用的建構函式擲回例外狀況。

傳遞的參數數目不正確。

呼叫端沒有必要的程式碼存取權限。

這個類別是抽象的。

-或-

建構函式是類別初始設定式。

建構函式屬私用或受保護,且呼叫端缺少 MemberAccess

備註

數位中 parameters 元素的數目、類型和順序應該與這個實例所反映之建構函式的參數數目、類型和順序相同。

在呼叫建構函式之前, Invoke 請確定呼叫端具有訪問許可權,且參數具有正確的數位、順序和類型。

完全信任的程式代碼會忽略存取限制。 也就是說,只要程序代碼完全信任,就可以使用反映來存取和叫用私用建構函式、方法、欄位和屬性。

注意

若要建立沒有實例建構函式之實值型別的實例,請使用 CreateInstance 方法。

注意

從 .NET Framework 2.0 開始,如果呼叫端已使用 旗標授ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess與呼叫端,而且非公用成員的授與集僅限於呼叫端的授與集或子集,這個方法就可以用來存取非公用成員。 (請參閱 Reflection.) 的安全性考慮 若要使用此功能,您的應用程式應以 .NET Framework 3.5 或更新版本為目標。

另請參閱

適用於