ConstructorBuilder.Invoke 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
叫用此執行個體動態反映的建構函式。
多載
Invoke(BindingFlags, Binder, Object[], CultureInfo) |
動態叫用這個執行個體在指定物件上代表的建構函式,並與指定參數一併依指定繫結器的條件約束傳遞。 |
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
在指定的 |
Invoke(BindingFlags, Binder, Object[], CultureInfo)
動態叫用這個執行個體在指定物件上代表的建構函式,並與指定參數一併依指定繫結器的條件約束傳遞。
public:
override System::Object ^ Invoke(System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public override object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public override 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 Overrides Function Invoke (invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object
參數
- invokeAttr
- BindingFlags
這必須是來自 BindingFlags 的位元旗標,例如 InvokeMethod、NonPublic 等等。
- parameters
- Object[]
引數清單。 這是引數陣列,其數目、順序和類型與要叫用的建構函式參數相同。 如果沒有任何參數,則這應該是 null
。
- culture
- CultureInfo
CultureInfo 的執行個體,用於管理類型的強制型轉。 如果這是 null,會使用目前執行緒的 CultureInfo。 (例如,要將代表 1000 的 String 轉換成 Double 值時,這是必要的,因為 1000 的表示方式會因不同文化特性而有所不同)。
傳回
叫用的建構函式所傳回的值。
例外狀況
目前不支援這個方法。 您可以使用 GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) 並在傳回的 ConstructorInfo 呼叫 Invoke(BindingFlags, Binder, Object[], CultureInfo),藉此擷取建構函式。
備註
如果建構函式沒有參數,參數 parameters
的值應該是 null
。 否則,陣列中 parameters
元素的數目、類型和順序應該與這個實例反映之建構函式的參數數目、類型和順序相同。
例如,如果這個實例反映的建構函式宣告為採用兩個字串的公用類別,則 parameters
參數應該是長度為2的 Object 陣列。
注意
完全信任的程式代碼會忽略存取限制。 也就是說,每當程序代碼完全信任時,可以使用 Reflection 來存取和叫用私人建構函式、方法、字段和屬性。
另請參閱
適用於
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
在指定的 Binder
條件約束下,動態叫用這個執行個體與指定引數反映的建構函式。
public:
override System::Object ^ Invoke(System::Object ^ obj, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public override object Invoke (object? obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public override object Invoke (object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);
override this.Invoke : obj * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public Overrides Function Invoke (obj As Object, invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object
參數
- obj
- Object
必須重新初始化的物件。
- invokeAttr
- BindingFlags
其中一個 BindingFlags
值指定想要的繫結類型。
- binder
- Binder
Binder
,會使用反映定義一組屬性和啟用繫結、引數類型強制型轉和成員引動過程。 如果 binder
是 null
,則會使用 Binder.DefaultBinding。
- parameters
- Object[]
引數清單。 這是引數陣列,其數目、順序和類型與要叫用的建構函式參數相同。 如果沒有任何參數,則這應該是 null 參考 (在 Visual Basic 中為 Nothing
)。
- culture
- CultureInfo
CultureInfo,用來管理類型的強制型轉。 如果這是 null,會使用目前執行緒的 CultureInfo。
傳回
與建構函式相關聯的類別之執行個體。
例外狀況
目前不支援這個方法。 您可以使用 GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) 並在傳回的 ConstructorInfo 呼叫 Invoke(BindingFlags, Binder, Object[], CultureInfo),藉此擷取建構函式。
備註
參數陣列中元素的數目、類型和順序應該與這個實例所反映之建構函式的參數數目、類型和順序相同。
呼叫建構函式之前, Invoke
請確定呼叫端具有訪問許可權,而且參數為正確的數位、順序和類型。
完全信任的程式代碼會忽略存取限制。 也就是說,每當程序代碼完全信任時,可以使用 Reflection 來存取和叫用私人建構函式、方法、字段和屬性。