ConstructorInfo.Invoke メソッド

定義

インスタンスがリフレクションするコンストラクターを呼び出します。

オーバーロード

Invoke(Object[])

通常は使用しないパラメーターの既定値を指定して、指定されたパラメーターを持つインスタンスがリフレクトしたコンストラクターを呼び出します。

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

派生クラスに実装された場合、指定されている ConstructorInfo の制約下で、Binder によってリフレクションされるコンストラクターを引数を指定して呼び出します。

Invoke(Object[])

通常は使用しないパラメーターの既定値を指定して、指定されたパラメーターを持つインスタンスがリフレクトしたコンストラクターを呼び出します。

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[]

(既定のバインダーの制約の下で) このコンストラクターのパラメーターの数、順序、および型に一致する値の配列。 このコンストラクターがパラメーターをとらない場合は、Object[] parameters = new Object[0] のように、要素がゼロ個の配列か null を使用します。 この配列の中で、何らかの値で明示的に初期化されないオブジェクトには、そのオブジェクト型の既定値が格納されます。 参照型の要素の場合、この値は null です。 値型の要素の場合、この値は、実際の要素の型に応じて、0、0.0、または false となります。

戻り値

Object

コンストラクターに関連付けられているクラスのインスタンス。

例外

このクラスは抽象クラスです。

  • または -

コンストラクターはクラス初期化子です。

コンストラクターが private または protected で、呼び出し元に MemberAccess が不足しています。

注: Windows Microsoft Store アプリまたはポータブル クラス ライブラリの .NET では、代わりに基底クラスの例外MemberAccessExceptionをキャッチします。

parameters 配列には、このコンストラクターが受け入れる型と一致する値が含まれていません。

呼び出されたコンストラクターが例外をスローします。

渡されたパラメーターの数が正しくありません。

TypedReference 型、ArgIterator 型、および RuntimeArgumentHandle 型の作成はサポートされません。

呼び出し元には、必要なコード アクセス許可がありません。

注釈

配列内 parameters の要素の数、型、順序は、このインスタンスによって反映されるコンストラクターのパラメーターの数、型、順序と同じである必要があります。 コンストラクターを呼び出す前に、 Invoke 呼び出し元がアクセス許可を持っていることを確認し、パラメーターが有効であることを確認します。

完全に信頼されたコードのアクセス制限は無視されます。 つまり、プライベート コンストラクター、メソッド、フィールド、プロパティにアクセスし、コードが完全に信頼されている場合は常にリフレクションを使用して呼び出すことができます。

注意

インスタンス コンストラクターがない値型のインスタンスを作成するには、メソッドを CreateInstance 使用します。

このメソッドは、既定値を使用して、次のオーバーロードされたバージョンの便利なメソッドです。 このメソッドはオーバーライドできません。

注意

.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元にフラグが付与ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccessされている場合、および非パブリック メンバーの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合、このメソッドを使用して非パブリック メンバーにアクセスできます。 (リフレクションのセキュリティに関する考慮事項を参照してください)。この機能を使用するには、アプリケーションが 3.5 以降.NET Frameworkターゲットにする必要があります。

適用対象

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

派生クラスに実装された場合、指定されている 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 値の 1 つ。

binder
Binder

プロパティのセットを定義し、バインディング、引数の型の強制変換、およびリフレクションを使用したメンバーの呼び出しの機能を有効にする Binderbindernull の場合は、Binder.DefaultBinding が使用されます。

parameters
Object[]

binder の制約下で、コンストラクターのパラメーターの数、順序、および型と要素の数、順序、型を一致させるオブジェクト型の配列。Object コンストラクターにパラメーターが必要ない場合は、Object[] parameters = new Object[0] のように、要素がゼロ個の配列を渡します。 この配列の中で、何らかの値で明示的に初期化されないオブジェクトには、そのオブジェクト型の既定値が格納されます。 参照型の要素の場合、この値は null です。 値型の要素の場合、この値は、実際の要素の型に応じて、0、0.0、または false となります。

culture
CultureInfo

型の強制変換を制御するために使用する CultureInfonull の場合は、現在のスレッドの CultureInfo が使用されます。

戻り値

Object

コンストラクターに関連付けられているクラスのインスタンス。

例外

parameters 配列には、binder 制約下で、このコンストラクターが受け入れる型と一致する値が含まれていません。

呼び出されたコンストラクターが例外をスローします。

渡されたパラメーターの数が正しくありません。

TypedReference 型、ArgIterator 型、および RuntimeArgumentHandle 型の作成はサポートされません。

呼び出し元に、必要なコード アクセス許可がありません。

このクラスは抽象クラスです。

  • または -

コンストラクターはクラス初期化子です。

コンストラクターが private または protected で、呼び出し元に MemberAccess が不足しています。

注釈

配列内 parameters の要素の数、型、順序は、このインスタンスによって反映されるコンストラクターのパラメーターの数、型、順序と同じである必要があります。

コンストラクターを呼び出す前に、 Invoke 呼び出し元がアクセス許可を持ち、パラメーターが正しい番号、順序、型であることを確認します。

完全に信頼されたコードのアクセス制限は無視されます。 つまり、プライベート コンストラクター、メソッド、フィールド、プロパティにアクセスし、コードが完全に信頼されている場合は常にリフレクションを使用して呼び出すことができます。

注意

インスタンス コンストラクターがない値型のインスタンスを作成するには、メソッドを CreateInstance 使用します。

注意

.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元にフラグが付与ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccessされている場合、および非パブリック メンバーの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合、このメソッドを使用して非パブリック メンバーにアクセスできます。 (リフレクションのセキュリティに関する考慮事項を参照してください)。この機能を使用するには、アプリケーションが 3.5 以降.NET Frameworkターゲットにする必要があります。

こちらもご覧ください

適用対象