英語で読む

次の方法で共有


ConstructorInfo.Invoke メソッド

定義

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

オーバーロード

Invoke(Object[])

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

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

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

Invoke(Object[])

ソース:
ConstructorInfo.cs
ソース:
ConstructorInfo.cs
ソース:
ConstructorInfo.cs

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

C#
public virtual object Invoke(object[] parameters);
C#
public object Invoke(object?[]? parameters);
C#
public object Invoke(object[] parameters);

パラメーター

parameters
Object[]

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

戻り値

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

例外

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

- または -

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

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

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

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

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

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

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

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

注釈

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

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

注意

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

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

注意

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

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

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

ソース:
ConstructorInfo.cs
ソース:
ConstructorInfo.cs
ソース:
ConstructorInfo.cs

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

C#
public abstract object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
C#
public abstract object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);

パラメーター

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 が使用されます。

戻り値

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

例外

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

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

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

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

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

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

- または -

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

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

注釈

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

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

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

注意

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

注意

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

こちらもご覧ください

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1