ConstructorInfo.Invoke 方法

定義

會喚起本實例所反映的構造子。

多載

名稱 Description
Invoke(Object[])

呼叫由實例反映的建構子,該實例包含指定參數,並提供不常用參數的預設值。

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

當在導出類別中實作時,會以指定的參數調用所反映 ConstructorInfo 的建構子,並受指定 Binder限制。

Invoke(Object[])

來源:
ConstructorInfo.cs
來源:
ConstructorInfo.cs
來源:
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缺乏。

parameters 列中不包含與此建構子接受的類型相符的值。

被調用的建構子會拋出例外。

傳遞的參數數量錯誤。

來電者沒有必要的代碼存取權限。

備註

陣列中 parameters 元素的數量、類型與順序應與本實例所反映的建構子參數數量、類型及順序相同。 在呼叫建構子之前,先 Invoke 確保呼叫者擁有存取權限並驗證參數有效。

完全信任的程式碼會忽略存取限制。 也就是說,只要程式碼完全信任,私有建構子、方法、欄位和屬性都可以透過反射來存取和調用。

Note

若要建立一個沒有實例建構子的值型別實例,請使用該 CreateInstance 方法。

此方法為以下超載版本提供便利,使用預設值。 此方法無法被覆蓋。

Note

若呼叫者已獲得ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess該旗標,且非公開成員的授權集限制於呼叫者的授權集或其子集,此方法可用來存取非公開成員。 (詳見 安全考量以資反思。)

適用於

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

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

當在導出類別中實作時,會以指定的參數調用所反映 ConstructorInfo 的建構子,並受指定 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 一組屬性,並使參數類型能被綁定、強制使用,以及透過反射調用成員。 若 bindernullBinder.DefaultBinding 使用 。

parameters
Object[]

一個型別 Object 為的陣列,用來匹配此建構子參數的數量、順序與類型,條件為 binder。 如果這個建構子不需要參數,則傳遞一個元素為零的陣列,如 Object[] 參數 = new Object[0]。 這個陣列中任何未明確初始化值的物件,都會包含該物件類型的預設值。 對於參考型元素,此值為 null。 對於值型元素,這個值會根據特定元素類型而定,分別是0、0.0或 false

culture
CultureInfo

A CultureInfo 用來管理類型的強制。 如果是 nullCultureInfo 則使用當前執行緒的 。

傳回

與建構子相關聯的類別實例。

例外狀況

parameters 列中不包含與此建構子在約束 binder條件下接受的類型相符的值。

被調用的建構子會拋出例外。

傳遞的參數數量錯誤。

來電者沒有必要的程式碼存取權限。

這門課是抽象的。

-或-

建構子是一個類別初始化器。

構造子是私有或受保護的,而呼叫者則 MemberAccess缺乏。

備註

陣列中 parameters 元素的數量、類型與順序應與本實例所反映的建構子參數數量、類型及順序相同。

在呼叫建構子之前,請 Invoke 確保呼叫者擁有存取權限,且參數的數量、順序與類型皆正確。

完全信任的程式碼會忽略存取限制。 也就是說,只要程式碼完全信任,私有建構子、方法、欄位和屬性都可以透過反射來存取和調用。

Note

若要建立一個沒有實例建構子的值型別實例,請使用該 CreateInstance 方法。

Note

若呼叫者已獲得ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess該旗標,且非公開成員的授權集限制於呼叫者的授權集或其子集,此方法可用來存取非公開成員。 (參見 安全考量 以促進反思)要使用此功能,您的應用程式應針對 .NET Framework 3.5 或更新版本。

另請參閱

適用於