ConstructorInfo.Invoke メソッド

定義

インスタンスがリフレクションするコンストラクターを呼び出します。Invokes the constructor reflected by this instance.

オーバーロード

Invoke(Object[])

通常は使用しないパラメーターの既定値を指定して、指定されたパラメーターを持つインスタンスがリフレクトしたコンストラクターを呼び出します。Invokes the constructor reflected by the instance that has the specified parameters, providing default values for the parameters not commonly used.

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

派生クラスに実装された場合、指定されている ConstructorInfo の制約下で、Binder によってリフレクションされるコンストラクターを引数を指定して呼び出します。When implemented in a derived class, invokes the constructor reflected by this ConstructorInfo with the specified arguments, under the constraints of the specified Binder.

Invoke(Object[])

通常は使用しないパラメーターの既定値を指定して、指定されたパラメーターを持つインスタンスがリフレクトしたコンストラクターを呼び出します。Invokes the constructor reflected by the instance that has the specified parameters, providing default values for the parameters not commonly used.

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

パラメーター

parameters
Object[]

(既定のバインダーの制約の下で) このコンストラクターのパラメーターの数、順序、および型に一致する値の配列。An array of values that matches the number, order and type (under the constraints of the default binder) of the parameters for this constructor. このコンストラクターがパラメーターをとらない場合は、Object[] parameters = new Object[0] のように、要素がゼロ個の配列か null を使用します。If this constructor takes no parameters, then use either an array with zero elements or null, as in Object[] parameters = new Object[0]. この配列の中で、何らかの値で明示的に初期化されないオブジェクトには、そのオブジェクト型の既定値が格納されます。Any object in this array that is not explicitly initialized with a value will contain the default value for that object type. 参照型の要素の場合、この値は null です。For reference-type elements, this value is null. 値型の要素の場合、この値は、実際の要素の型に応じて、0、0.0、または false となります。For value-type elements, this value is 0, 0.0, or false, depending on the specific element type.

戻り値

コンストラクターに関連付けられているクラスのインスタンス。An instance of the class associated with the constructor.

例外

このクラスは抽象クラスです。The class is abstract.

または-or-

コンストラクターはクラス初期化子です。The constructor is a class initializer.

Windows ストア アプリ用 .NET またはポータブル クラス ライブラリでは、基本クラスの例外である MemberAccessException を代わりにキャッチします。In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MemberAccessException, instead.

コンストラクターが private または protected で、呼び出し元に MemberAccess が不足しています。The constructor is private or protected, and the caller lacks MemberAccess.

parameters 配列には、このコンストラクターが受け入れる型と一致する値が含まれていません。The parameters array does not contain values that match the types accepted by this constructor.

呼び出されたコンストラクターが例外をスローします。The invoked constructor throws an exception.

渡されたパラメーターの数が正しくありません。An incorrect number of parameters was passed.

TypedReference 型、ArgIterator 型、および RuntimeArgumentHandle 型の作成はサポートされません。Creation of TypedReference, ArgIterator, and RuntimeArgumentHandle types is not supported.

呼び出し元には、必要なコード アクセス許可がありません。The caller does not have the necessary code access permission.

注釈

parameters配列内の要素の数、型、および順序は、このインスタンスによってリフレクションされるコンストラクターのパラメーターの数、型、および順序と同じである必要があります。The number, type, and order of elements in the parameters array should be identical to the number, type, and order of parameters for the constructor reflected by this instance. コンストラクターを呼び出す前にInvoke 、は呼び出し元にアクセス許可があることを確認し、パラメーターが有効であることを確認します。Before calling the constructor, Invoke ensures that the caller has access permission and verifies that the parameters are valid.

完全に信頼されたコードでは、アクセス制限は無視されます。Access restrictions are ignored for fully trusted code. つまり、プライベートコンストラクター、メソッド、フィールド、およびプロパティには、コードが完全に信頼されている場合は常にリフレクションを使用してアクセスし、呼び出すことができます。That is, private constructors, methods, fields, and properties can be accessed and invoked using reflection whenever the code is fully trusted.

注意

インスタンスコンストラクターを持たない値型のインスタンスを作成するには、 CreateInstanceメソッドを使用します。To create an instance of a value type that has no instance constructors, use the CreateInstance method.

このメソッドは、既定値を使用して、次のオーバーロードされたバージョンの便利なメソッドです。This method is a convenience method for the following overloaded version, using default values. このメソッドはオーバーライドできません。This method cannot be overridden.

注意

以降では、このメソッドを使用して、呼び出し元がReflectionPermissionFlag.RestrictedMemberAccessフラグで許可ReflectionPermissionされていて、非パブリックメンバーの許可セットが呼び出し元の許可セットまたはサブセットに制限されている場合に、非パブリックメンバーにアクセスできます。 .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1著作.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access non-public members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the non-public members is restricted to the caller's grant set, or a subset thereof. (「リフレクションのセキュリティに関する考慮事項」を参照してください)。(See Security Considerations for Reflection.)

この機能を使用するには、アプリケーションで .NET Framework 3.5.NET Framework 3.5 以降を対象とする必要があります。To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

セキュリティ

ReflectionPermission
などの機構をInvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])使用して遅延バインディングが呼び出された場合。when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). MemberAccess (関連する列挙体)Associated enumeration: MemberAccess.

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

派生クラスに実装された場合、指定されている ConstructorInfo の制約下で、Binder によってリフレクションされるコンストラクターを引数を指定して呼び出します。When implemented in a derived class, invokes the constructor reflected by this ConstructorInfo with the specified arguments, under the constraints of the specified 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);
override this.Invoke : System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj

パラメーター

invokeAttr
BindingFlags

バインディングの種類を指定する BindingFlags 値の 1 つ。One of the BindingFlags values that specifies the type of binding.

binder
Binder

プロパティのセットを定義し、バインディング、引数の型の強制変換、およびリフレクションを使用したメンバーの呼び出しの機能を有効にする BinderA Binder that defines a set of properties and enables the binding, coercion of argument types, and invocation of members using reflection. bindernull の場合は、Binder.DefaultBinding が使用されます。If binder is null, then Binder.DefaultBinding is used.

parameters
Object[]

binder の制約下で、コンストラクターのパラメーターの数、順序、および型と要素の数、順序、型を一致させるオブジェクト型の配列。ObjectAn array of type Object used to match the number, order and type of the parameters for this constructor, under the constraints of binder. コンストラクターにパラメーターが必要ない場合は、Object[] parameters = new Object[0] のように、要素がゼロ個の配列を渡します。If this constructor does not require parameters, pass an array with zero elements, as in Object[] parameters = new Object[0]. この配列の中で、何らかの値で明示的に初期化されないオブジェクトには、そのオブジェクト型の既定値が格納されます。Any object in this array that is not explicitly initialized with a value will contain the default value for that object type. 参照型の要素の場合、この値は null です。For reference-type elements, this value is null. 値型の要素の場合、この値は、実際の要素の型に応じて、0、0.0、または false となります。For value-type elements, this value is 0, 0.0, or false, depending on the specific element type.

culture
CultureInfo

型の強制変換を制御するために使用する CultureInfoA CultureInfo used to govern the coercion of types. null の場合は、現在のスレッドの CultureInfo が使用されます。If this is null, the CultureInfo for the current thread is used.

戻り値

コンストラクターに関連付けられているクラスのインスタンス。An instance of the class associated with the constructor.

例外

parameters 配列には、binder 制約下で、このコンストラクターが受け入れる型と一致する値が含まれていません。The parameters array does not contain values that match the types accepted by this constructor, under the constraints of the binder.

呼び出されたコンストラクターが例外をスローします。The invoked constructor throws an exception.

渡されたパラメーターの数が正しくありません。An incorrect number of parameters was passed.

TypedReference 型、ArgIterator 型、および RuntimeArgumentHandle 型の作成はサポートされません。Creation of TypedReference, ArgIterator, and RuntimeArgumentHandle types is not supported.

呼び出し元に、必要なコード アクセス許可がありません。The caller does not have the necessary code access permissions.

このクラスは抽象クラスです。The class is abstract.

- または --or-

コンストラクターはクラス初期化子です。The constructor is a class initializer.

コンストラクターが private または protected で、呼び出し元に MemberAccess が不足しています。The constructor is private or protected, and the caller lacks MemberAccess.

注釈

parameters配列内の要素の数、型、および順序は、このインスタンスによってリフレクションされるコンストラクターのパラメーターの数、型、および順序と同じである必要があります。The number, type, and order of elements in the parameters array should be identical to the number, type, and order of parameters for the constructor reflected by this instance.

コンストラクターを呼び出す前にInvoke 、は呼び出し元にアクセス許可があり、パラメーターが正しい数値、順序、および型であることを確認します。Before calling the constructor, Invoke ensures that the caller has access permission and that the parameters are of the correct number, order and type.

完全に信頼されたコードでは、アクセス制限は無視されます。Access restrictions are ignored for fully trusted code. つまり、プライベートコンストラクター、メソッド、フィールド、およびプロパティには、コードが完全に信頼されている場合は常にリフレクションを使用してアクセスし、呼び出すことができます。That is, private constructors, methods, fields, and properties can be accessed and invoked using reflection whenever the code is fully trusted.

注意

インスタンスコンストラクターを持たない値型のインスタンスを作成するには、 CreateInstanceメソッドを使用します。To create an instance of a value type that has no instance constructors, use the CreateInstance method.

注意

以降では、このメソッドを使用して、呼び出し元がReflectionPermissionFlag.RestrictedMemberAccessフラグで許可ReflectionPermissionされていて、非パブリックメンバーの許可セットが呼び出し元の許可セットまたはサブセットに制限されている場合に、非パブリックメンバーにアクセスできます。 .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1著作.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access non-public members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the non-public members is restricted to the caller's grant set, or a subset thereof. (「リフレクションのセキュリティに関する考慮事項」を参照してください)。(See Security Considerations for Reflection.)

この機能を使用するには、アプリケーションで .NET Framework 3.5.NET Framework 3.5 以降を対象とする必要があります。To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

セキュリティ

ReflectionPermission
などの機構をInvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])使用して遅延バインディングが呼び出された場合。when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). MemberAccess (関連する列挙体)Associated enumeration: MemberAccess.

こちらもご覧ください

適用対象