Activator.CreateInstance Activator.CreateInstance Activator.CreateInstance Activator.CreateInstance Method

定義

指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。Creates an instance of the specified type using the constructor that best matches the specified parameters.

オーバーロード

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

名前を指定したアセンブリと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

名前を指定したアセンブリと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

名前を指定したアセンブリと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])

指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)

指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Object[], Object[]) CreateInstance(Type, Object[], Object[]) CreateInstance(Type, Object[], Object[])

指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[])

名前を指定したアセンブリと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

名前を指定したアセンブリと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

CreateInstance(Type, Object[]) CreateInstance(Type, Object[]) CreateInstance(Type, Object[])

指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Boolean) CreateInstance(Type, Boolean) CreateInstance(Type, Boolean)

指定された型のパラメーターなしのコンストラクターを使用して、指定された型のインスタンスを作成します。Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(String, String) CreateInstance(String, String) CreateInstance(String, String) CreateInstance(String, String)

名前を指定したアセンブリと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

CreateInstance(ActivationContext, String[]) CreateInstance(ActivationContext, String[]) CreateInstance(ActivationContext, String[])

指定した ActivationContext オブジェクトによって決定され、指定したカスタム アクティベーション データによってアクティブにされる型のインスタンスを作成します。Creates an instance of the type that is designated by the specified ActivationContext object and activated with the specified custom activation data.

CreateInstance(Type) CreateInstance(Type) CreateInstance(Type)

指定された型のパラメーターなしのコンストラクターを使用して、指定された型のインスタンスを作成します。Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(ActivationContext) CreateInstance(ActivationContext) CreateInstance(ActivationContext)

指定した ActivationContext オブジェクトによって決定される型のインスタンスを作成します。Creates an instance of the type designated by the specified ActivationContext object.

CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String)

名前を指定したアセンブリとパラメーターなしのコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and parameterless constructor.

CreateInstance<T>() CreateInstance<T>() CreateInstance<T>() CreateInstance<T>()

パラメーターなしのコンストラクターを使用して、指定されたジェネリック型パラメーターによって決定される型のインスタンスを作成します。Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

警告

この API は現在使われていません。

名前を指定したアセンブリと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityAttributes);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle

パラメーター

domain
AppDomain AppDomain AppDomain AppDomain

typeName という名前の型が作成されるドメイン。The domain where the type named typeName is created.

assemblyName
String String String String

typeName という名前の型をシークする場所となるアセンブリの名前。The name of the assembly where the type named typeName is sought. assemblyNamenull の場合は、実行中のアセンブリが検索されます。If assemblyName is null, the executing assembly is searched.

typeName
String String String String

必要な型の完全修飾名。The fully qualified name of the preferred type.

ignoreCase
Boolean Boolean Boolean Boolean

typeName の検索で大文字と小文字を区別しない場合は true。検索で大文字と小文字を区別する場合は falsetrue to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

typeName コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。A combination of zero or more bit flags that affect the search for the typeName constructor. bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

bindingAttr および args を使用して typeName コンストラクターをシークおよび識別するオブジェクト。An object that uses bindingAttr and args to seek and identify the typeName constructor. bindernull の場合は、既定のバインダーが使用されます。If binder is null, the default binder is used.

args
Object[]

呼び出すコンストラクターのパラメーターと、数、順序、および型が一致する引数の配列。An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo CultureInfo CultureInfo CultureInfo

args から typeName コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. culturenull の場合は、現在のスレッドの CultureInfo が使用されます。If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。An array of one or more attributes that can participate in activation. 通常、これは単一の UrlAttribute オブジェクトを含む配列です。This is typically an array that contains a single UrlAttribute object. UrlAttribute により、リモート オブジェクトのアクティブ化に必要な URL が指定されます。The UrlAttribute specifies the URL that is required to activate a remote object.

securityAttributes
Evidence Evidence Evidence Evidence

セキュリティ ポリシーがコードに与えるアクセス許可を決定するために使用する情報。Information used to make security policy decisions and grant code permissions.

戻り値

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。A handle that must be unwrapped to access the newly created instance.

例外

domain または typeNamenull です。domain or typeName is null.

一致するコンストラクターが見つかりませんでした。No matching constructor was found.

typenameassemblyName に見つかりませんでした。typename was not found in assemblyName.

assemblyName が見つかりませんでした。assemblyName was not found.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID または GetTypeFromCLSIDを通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

または-or- activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

または-or- args と最もよく一致するコンストラクターに varargs 引数があります。The constructor that best matches args has varargs arguments.

assemblyName は正しいアセンブリではありません。assemblyName is not a valid assembly.

または-or- 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。An assembly or module was loaded twice with two different evidences.

- または --or-

アセンブリ名かコード ベースが正しくありません。The assembly name or code base is invalid.

注釈

ホストCreateInstanceが、セキュリティアクセス許可が制限されたアプリケーションドメインでコードを実行する必要がある場合に使用します。Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

戻りObjectHandle.Unwrap値のラップを解除するには、を使用します。Use ObjectHandle.Unwrap to unwrap the return value.

注意

このメソッドはSecurityAction.LinkDemand 、を使用して、直前の呼び出し元に完全信頼を与えるように要求します。This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
すべての型のメンバーに対して操作を呼び出すことができる。for the ability to invoke operations on all type members. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

SecurityCriticalAttribute
直前の呼び出し元に完全信頼が必要です。requires full trust for the immediate caller. このメンバーは、部分的に信頼されているコードまたは透過的なコードでは使用できません。This member cannot be used by partially trusted or transparent code.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

名前を指定したアセンブリと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle

パラメーター

domain
AppDomain AppDomain AppDomain AppDomain

typeName という名前の型が作成されるドメイン。The domain where the type named typeName is created.

assemblyName
String String String String

typeName という名前の型をシークする場所となるアセンブリの名前。The name of the assembly where the type named typeName is sought. assemblyNamenull の場合は、実行中のアセンブリが検索されます。If assemblyName is null, the executing assembly is searched.

typeName
String String String String

必要な型の完全修飾名。The fully qualified name of the preferred type.

ignoreCase
Boolean Boolean Boolean Boolean

typeName の検索で大文字と小文字を区別しない場合は true。検索で大文字と小文字を区別する場合は falsetrue to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

typeName コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。A combination of zero or more bit flags that affect the search for the typeName constructor. bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

bindingAttr および args を使用して typeName コンストラクターをシークおよび識別するオブジェクト。An object that uses bindingAttr and args to seek and identify the typeName constructor. bindernull の場合は、既定のバインダーが使用されます。If binder is null, the default binder is used.

args
Object[]

呼び出すコンストラクターのパラメーターと、数、順序、および型が一致する引数の配列。An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo CultureInfo CultureInfo CultureInfo

args から typeName コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. culturenull の場合は、現在のスレッドの CultureInfo が使用されます。If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。An array of one or more attributes that can participate in activation. これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。This parameter is related to client-activated objects. クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。Distributed applications should instead use Windows Communication Foundation.

戻り値

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。A handle that must be unwrapped to access the newly created instance.

例外

domain または typeNamenull です。domain or typeName is null.

一致するコンストラクターが見つかりませんでした。No matching constructor was found.

typenameassemblyName に見つかりませんでした。typename was not found in assemblyName.

assemblyName が見つかりませんでした。assemblyName was not found.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID または GetTypeFromCLSIDを通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- または --or- activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- または --or- args と最もよく一致するコンストラクターに varargs 引数があります。The constructor that best matches args has varargs arguments.

assemblyName は正しいアセンブリではありません。assemblyName is not a valid assembly.

- または --or- 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。An assembly or module was loaded twice with two different evidences.

- または --or-

アセンブリ名かコード ベースが正しくありません。The assembly name or code base is invalid.

注釈

ホストCreateInstanceが、セキュリティアクセス許可が制限されたアプリケーションドメインでコードを実行する必要がある場合に使用します。Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

戻りObjectHandle.Unwrap値のラップを解除するには、を使用します。Use ObjectHandle.Unwrap to unwrap the return value.

注意

このメソッドはSecurityAction.LinkDemand 、を使用して、直前の呼び出し元に完全信頼を与えるように要求します。This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

セキュリティ

SecurityCriticalAttribute
直前の呼び出し元に完全信頼が必要です。requires full trust for the immediate caller. このメンバーは、部分的に信頼されているコードまたは透過的なコードでは使用できません。This member cannot be used by partially trusted or transparent code.

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
すべての型のメンバーに対して操作を呼び出すことができる。for the ability to invoke operations on all type members. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

名前を指定したアセンブリと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle

パラメーター

assemblyName
String String String String

typeName という名前の型をシークする場所となるアセンブリの名前。The name of the assembly where the type named typeName is sought. assemblyNamenull の場合は、実行中のアセンブリが検索されます。If assemblyName is null, the executing assembly is searched.

typeName
String String String String

必要な型の完全修飾名。The fully qualified name of the preferred type.

ignoreCase
Boolean Boolean Boolean Boolean

typeName の検索で大文字と小文字を区別しない場合は true。検索で大文字と小文字を区別する場合は falsetrue to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

typeName コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。A combination of zero or more bit flags that affect the search for the typeName constructor. bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

bindingAttr および args を使用して typeName コンストラクターをシークおよび識別するオブジェクト。An object that uses bindingAttr and args to seek and identify the typeName constructor. bindernull の場合は、既定のバインダーが使用されます。If binder is null, the default binder is used.

args
Object[]

呼び出すコンストラクターのパラメーターと、数、順序、および型が一致する引数の配列。An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo CultureInfo CultureInfo CultureInfo

args から typeName コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. culturenull の場合は、現在のスレッドの CultureInfo が使用されます。If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。An array of one or more attributes that can participate in activation. これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。This parameter is related to client-activated objects. クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。Distributed applications should instead use Windows Communication Foundation.

戻り値

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。A handle that must be unwrapped to access the newly created instance.

例外

一致するコンストラクターが見つかりませんでした。No matching constructor was found.

typenameassemblyName に見つかりませんでした。typename was not found in assemblyName.

assemblyName が見つかりませんでした。assemblyName was not found.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID または GetTypeFromCLSIDを通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

または-or- activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- または --or- args と最もよく一致するコンストラクターに varargs 引数があります。The constructor that best matches args has varargs arguments.

assemblyName は正しいアセンブリではありません。assemblyName is not a valid assembly.

- または --or- 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。An assembly or module was loaded twice with two different evidences.

- または --or-

アセンブリ名かコード ベースが正しくありません。The assembly name or code base is invalid.

注釈

戻りObjectHandle.Unwrap値のラップを解除するには、を使用します。Use ObjectHandle.Unwrap to unwrap the return value.

注意

以降では.NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1、このメソッドを使用して、呼び出し元にReflectionPermissionFlag.RestrictedMemberAccessフラグが付与ReflectionPermissionされていて、非パブリック型とメンバーを含むアセンブリの許可セットが制限されている場合に、非パブリックな型とメンバーを作成できます。呼び出し元の許可セットまたはサブセットに対して。Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to 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.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
許可セットに関係なく、非パブリックな型とメンバーにアクセスするための。for accessing nonpublic types and members regardless of their grant set. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])

指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。Creates an instance of the specified type using the constructor that best matches the specified parameters.

public:
 static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj

パラメーター

type
Type Type Type Type

作成するオブジェクトの型。The type of object to create.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

type コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。A combination of zero or more bit flags that affect the search for the type constructor. bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

bindingAttr および args を使用して type コンストラクターをシークおよび識別するオブジェクト。An object that uses bindingAttr and args to seek and identify the type constructor. bindernull の場合は、既定のバインダーが使用されます。If binder is null, the default binder is used.

args
Object[]

呼び出すコンストラクターのパラメーターと、数、順序、および型が一致する引数の配列。An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo CultureInfo CultureInfo CultureInfo

args から type コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。Culture-specific information that governs the coercion of args to the formal types declared for the type constructor. culturenull の場合は、現在のスレッドの CultureInfo が使用されます。If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。An array of one or more attributes that can participate in activation. これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。This parameter is related to client-activated objects. クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。Distributed applications should instead use Windows Communication Foundation.

戻り値

新しく作成されたオブジェクトへの参照。A reference to the newly created object.

例外

typeRuntimeType ではありません。type is not a RuntimeType.

- または --or- type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder にすることはできません。type cannot be a TypeBuilder.

- または --or- TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

または-or- activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- または --or- type を格納するアセンブリは、Save を使用して作成された動的アセンブリです。The assembly that contains type is a dynamic assembly that was created with Save.

- または --or- args と最もよく一致するコンストラクターに varargs 引数があります。The constructor that best matches args has varargs arguments.

呼び出されるコンストラクターは例外をスローします。The constructor being called throws an exception.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

一致するコンストラクターが見つかりませんでした。No matching constructor was found.

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type は有効な型ではありません。type is not a valid type.

注釈

呼び出されるコンストラクターは、指定されたバインダーおよびバインド属性の制約の下で、指定された引数リストと最も限定的な一致を提供する必要があります。The constructor to be invoked must provide the most specific match with the specified argument list under the constraints of the specified binder and binding attributes.

注意

以降では、このメソッドを使用して、呼び出し元に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 nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the nonpublic types and members is restricted to the caller's grant set or to 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.

セキュリティ

SecurityPermission
証拠を提供します。for supplying evidence. 関連付けられた列挙型:ControlEvidenceAssociated enumeration: ControlEvidence

ReflectionPermission
許可セットに関係なく、非パブリックな型とメンバーにアクセスするための。for accessing nonpublic types and members regardless of their grant set. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)

指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。Creates an instance of the specified type using the constructor that best matches the specified parameters.

public:
 static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj

パラメーター

type
Type Type Type Type

作成するオブジェクトの型。The type of object to create.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

type コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。A combination of zero or more bit flags that affect the search for the type constructor. bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

bindingAttr および args を使用して type コンストラクターをシークおよび識別するオブジェクト。An object that uses bindingAttr and args to seek and identify the type constructor. bindernull の場合は、既定のバインダーが使用されます。If binder is null, the default binder is used.

args
Object[]

呼び出すコンストラクターのパラメーターと、数、順序、および型が一致する引数の配列。An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo CultureInfo CultureInfo CultureInfo

args から type コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。Culture-specific information that governs the coercion of args to the formal types declared for the type constructor. culturenull の場合は、現在のスレッドの CultureInfo が使用されます。If culture is null, the CultureInfo for the current thread is used.

戻り値

新しく作成されたオブジェクトへの参照。A reference to the newly created object.

例外

typeRuntimeType ではありません。type is not a RuntimeType.

- または --or- type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder にすることはできません。type cannot be a TypeBuilder.

- または --or- TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- または --or- type を格納するアセンブリは、Save を使用して作成された動的アセンブリです。The assembly that contains type is a dynamic assembly that was created with Save.

または-or- args と最もよく一致するコンストラクターに varargs 引数があります。The constructor that best matches args has varargs arguments.

呼び出されるコンストラクターは例外をスローします。The constructor being called throws an exception.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

一致するコンストラクターが見つかりませんでした。No matching constructor was found.

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type は有効な型ではありません。type is not a valid type.

注釈

呼び出されるコンストラクターは、指定されたバインダーおよびバインド属性の制約の下で、指定された引数リストと最も限定的な一致を提供する必要があります。The constructor to be invoked must provide the most specific match with the specified argument list under the constraints of the specified binder and binding attributes.

注意

以降では、このメソッドを使用して、呼び出し元に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 nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to 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.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
許可セットに関係なく、非パブリックな型とメンバーにアクセスするための。for accessing nonpublic types and members regardless of their grant set. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Object[], Object[]) CreateInstance(Type, Object[], Object[]) CreateInstance(Type, Object[], Object[])

指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。Creates an instance of the specified type using the constructor that best matches the specified parameters.

public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args, cli::array <System::Object ^> ^ activationAttributes);
public static object CreateInstance (Type type, object[] args, object[] activationAttributes);
static member CreateInstance : Type * obj[] * obj[] -> obj

パラメーター

type
Type Type Type Type

作成するオブジェクトの型。The type of object to create.

args
Object[]

呼び出すコンストラクターのパラメーターと、数、順序、および型が一致する引数の配列。An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。An array of one or more attributes that can participate in activation. これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。This parameter is related to client-activated objects. クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。Distributed applications should instead use Windows Communication Foundation.

戻り値

新しく作成されたオブジェクトへの参照。A reference to the newly created object.

例外

typeRuntimeType ではありません。type is not a RuntimeType.

または-or- type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder にすることはできません。type cannot be a TypeBuilder.

- または --or- TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- または --or- activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

または-or- type を格納するアセンブリは、Save を使用して作成された動的アセンブリです。The assembly that contains type is a dynamic assembly that was created with Save.

- または --or- args と最もよく一致するコンストラクターに varargs 引数があります。The constructor that best matches args has varargs arguments.

呼び出されるコンストラクターは例外をスローします。The constructor being called throws an exception.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID または GetTypeFromCLSID を通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

一致するパブリック コンストラクターが見つかりませんでした。No matching public constructor was found.

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type は有効な型ではありません。type is not a valid type.

注釈

呼び出されるコンストラクターはアクセス可能である必要があり、指定された引数リストと最も限定的な一致を提供する必要があります。The constructor to be invoked must be accessible and must provide the most specific match with the specified argument list.

注意

以降では、このメソッドを使用して、呼び出し元に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 nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to 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.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
許可セットに関係なく、非パブリック型にアクセスします。for accessing nonpublic types regardless of their grant set. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[])

名前を指定したアセンブリと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, object[] activationAttributes);
static member CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, activationAttributes As Object()) As ObjectHandle

パラメーター

assemblyName
String String String String

typeName という名前の型をシークする場所となるアセンブリの名前。The name of the assembly where the type named typeName is sought. assemblyNamenull の場合は、実行中のアセンブリが検索されます。If assemblyName is null, the executing assembly is searched.

typeName
String String String String

必要な型の完全修飾名。The fully qualified name of the preferred type.

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。An array of one or more attributes that can participate in activation. これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。This parameter is related to client-activated objects. クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。Distributed applications should instead use Windows Communication Foundation.

戻り値

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。A handle that must be unwrapped to access the newly created instance.

例外

一致するパブリック コンストラクターが見つかりませんでした。No matching public constructor was found.

typenameassemblyName に見つかりませんでした。typename was not found in assemblyName.

assemblyName が見つかりませんでした。assemblyName was not found.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID または GetTypeFromCLSID を通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

または-or- activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- または --or- activationAttributesUrlAttribute ではありません。activationAttributes is not a UrlAttribute

配列。array.

assemblyName は正しいアセンブリではありません。assemblyName is not a valid assembly.

- または --or- 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。An assembly or module was loaded twice with two different evidences.

または-or-

アセンブリ名かコード ベースが正しくありません。The assembly name or code base is invalid.

activationAttributes で指定されたターゲットでリモートからのアクティブ化を試みたときにエラーが発生しました。An error occurred when attempting remote activation in a target specified in activationAttributes.

注釈

戻りObjectHandle.Unwrap値のラップを解除するには、を使用します。Use ObjectHandle.Unwrap to unwrap the return value.

注意

以降では、このメソッドを使用して、呼び出し元がReflectionPermissionFlag.RestrictedMemberAccessフラグで許可ReflectionPermissionされている場合、および非パブリック型の許可セットが呼び出し元の許可セットまたはサブセットに制限されている場合に、非パブリック型を作成できます。 .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the nonpublic types is restricted to the caller's grant set or to 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.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
許可セットに関係なく、非パブリック型にアクセスします。for accessing nonpublic types regardless of their grant set. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

警告

この API は現在使われていません。

名前を指定したアセンブリと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityInfo);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle

パラメーター

assemblyName
String String String String

typeName という名前の型をシークする場所となるアセンブリの名前。The name of the assembly where the type named typeName is sought. assemblyNamenull の場合は、実行中のアセンブリが検索されます。If assemblyName is null, the executing assembly is searched.

typeName
String String String String

必要な型の完全修飾名。The fully qualified name of the preferred type.

ignoreCase
Boolean Boolean Boolean Boolean

typeName の検索で大文字と小文字を区別しない場合は true。検索で大文字と小文字を区別する場合は falsetrue to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

typeName コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。A combination of zero or more bit flags that affect the search for the typeName constructor. bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder Binder Binder Binder

bindingAttr および args を使用して typeName コンストラクターをシークおよび識別するオブジェクト。An object that uses bindingAttr and args to seek and identify the typeName constructor. bindernull の場合は、既定のバインダーが使用されます。If binder is null, the default binder is used.

args
Object[]

呼び出すコンストラクターのパラメーターと、数、順序、および型が一致する引数の配列。An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo CultureInfo CultureInfo CultureInfo

args から typeName コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. culturenull の場合は、現在のスレッドの CultureInfo が使用されます。If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。An array of one or more attributes that can participate in activation. これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。This parameter is related to client-activated objects. クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。Distributed applications should instead use Windows Communication Foundation.

securityInfo
Evidence Evidence Evidence Evidence

セキュリティ ポリシーがコードに与えるアクセス許可を決定するために使用する情報。Information used to make security policy decisions and grant code permissions.

戻り値

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。A handle that must be unwrapped to access the newly created instance.

例外

一致するコンストラクターが見つかりませんでした。No matching constructor was found.

typenameassemblyName に見つかりませんでした。typename was not found in assemblyName.

assemblyName が見つかりませんでした。assemblyName was not found.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID または GetTypeFromCLSIDを通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- または --or- activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

または-or- args と最もよく一致するコンストラクターに varargs 引数があります。The constructor that best matches args has varargs arguments.

assemblyName は正しいアセンブリではありません。assemblyName is not a valid assembly.

または-or- 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。An assembly or module was loaded twice with two different evidences.

- または --or-

アセンブリ名かコード ベースが正しくありません。The assembly name or code base is invalid.

注釈

戻りObjectHandle.Unwrap値のラップを解除するには、を使用します。Use ObjectHandle.Unwrap to unwrap the return value.

注意

以降では.NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1、このメソッドを使用して、呼び出し元にReflectionPermissionFlag.RestrictedMemberAccessフラグが付与ReflectionPermissionされていて、非パブリック型とメンバーを含むアセンブリの許可セットが制限されている場合に、非パブリックな型とメンバーを作成できます。呼び出し元の許可セットまたはサブセットに対して。Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to 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.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
許可セットに関係なく、非パブリックな型とメンバーにアクセスするための。for accessing nonpublic types and members regardless of their grant set. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Object[]) CreateInstance(Type, Object[]) CreateInstance(Type, Object[])

指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。Creates an instance of the specified type using the constructor that best matches the specified parameters.

public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args);
public static object CreateInstance (Type type, object[] args);
static member CreateInstance : Type * obj[] -> obj

パラメーター

type
Type Type Type Type

作成するオブジェクトの型。The type of object to create.

args
Object[]

呼び出すコンストラクターのパラメーターと、数、順序、および型が一致する引数の配列。An array of arguments that match in number, order, and type the parameters of the constructor to invoke. args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

戻り値

新しく作成されたオブジェクトへの参照。A reference to the newly created object.

例外

typeRuntimeType ではありません。type is not a RuntimeType.

- または --or- type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder にすることはできません。type cannot be a TypeBuilder.

- または --or- TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- または --or- type を格納するアセンブリは、Save を使用して作成された動的アセンブリです。The assembly that contains type is a dynamic assembly that was created with Save.

または-or- args と最もよく一致するコンストラクターに varargs 引数があります。The constructor that best matches args has varargs arguments.

呼び出されるコンストラクターは例外をスローします。The constructor being called throws an exception.

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

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID または GetTypeFromCLSID を通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

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

一致するパブリック コンストラクターが見つかりませんでした。No matching public constructor was found.

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type は有効な型ではありません。type is not a valid type.

次の例ではCreateInstance(Type, Object[]) 、メソッドを呼び出しStringてオブジェクトを作成します。The following example calls the CreateInstance(Type, Object[]) method to create a String object. このメソッドはString.String(Char[], Int32, Int32) 、コンストラクターを呼び出して、14番目位置から始まる文字配列から10個の要素を含む文字列をインスタンス化します。It calls the String.String(Char[], Int32, Int32) constructor to instantiate a string that contains ten elements from a character array starting at the fourteenth position.

using System;

public class Example
{
   public static void Main()
   {
      // Initialize array of characters from a to z.
      Char[] chars = new Char[26]; 
      for (int ctr = 0; ctr < 26; ctr++)
         chars[ctr] = (char) (ctr + 0x0061);

      Object obj = Activator.CreateInstance(typeof(String),
                                            new Object[] { chars, 13, 10 } );
      Console.WriteLine(obj);                                          
   }
}
// The example displays the following output:
//       nopqrstuvw
Module Example
   Public Sub Main()
      ' Initialize array of characters from a to z.
      Dim chars(25) As Char 
      For ctr As Short = 0 To 25
         chars(ctr) = ChrW(ctr + &h0061)
      Next 
      Dim obj As Object = Activator.CreateInstance(GetType(String),
                                                   { chars, 13, 10 })
      Console.WriteLine(obj)                                          
   End Sub
End Module
' The example displays the following output:
'       nopqrstuvw

次の例では、要素がStringコンストラクターに渡される引数であるジャグ配列を作成します。The following example creates a jagged array whose elements are arguments to be passed to a String constructor. この例では、各配列をCreateInstance(Type, Object[])メソッドに渡して、適切な文字列コンストラクターを呼び出します。The example then passes each array to the CreateInstance(Type, Object[]) method to invoke the appropriate string constructor.

using System;

public class Example
{
   public static void Main()
   {
      char[] characters = { 'a', 'b', 'c', 'd', 'e', 'f' };
      object[][] arguments = new object[3][] { new object[] { characters },
                                               new object[] { characters, 1, 4 },
                                               new object[] { characters[1], 20 } };

      for (int ctr = 0; ctr <= arguments.GetUpperBound(0); ctr++) {
         object[] args = arguments[ctr];
         object result = Activator.CreateInstance(typeof(String), args);
         Console.WriteLine("{0}: {1}", result.GetType().Name, result);
      }
   }
}
// The example displays the following output:
//    String: abcdef
//    String: bcde
//    String: bbbbbbbbbbbbbbbbbbbb
Module Example
   Public Sub Main()
      Dim characters() As Char = { "a"c, "b"c, "c"c, "d"c, "e"c, "f"c }
      Dim arguments()() As Object = new Object(2)() { New Object() { characters },
                                                      New Object() { characters, 1, 4 },
                                                      New Object() { characters(1), 20 } }

      For ctr As Integer = 0 To arguments.GetUpperBound(0)
         Dim args() As Object = arguments(ctr)
         Dim result As Object = Activator.CreateInstance(GetType(String), args)
         Console.WriteLine("{0}: {1}", result.GetType().Name, result)
      Next
   End Sub
End Module
' The example displays the following output:
'       String: abcdef
'       String: bcde
'       String: bbbbbbbbbbbbbbbbbbbb

注釈

呼び出されるコンストラクターはアクセス可能である必要があり、指定された引数リストと最も限定的な一致を提供する必要があります。The constructor to be invoked must be accessible and must provide the most specific match with the specified argument list.

注意

以降では、このメソッドを使用して、呼び出し元に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 nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to 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.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
許可セットに関係なく、非パブリック型にアクセスします。for accessing nonpublic types regardless of their grant set. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Boolean) CreateInstance(Type, Boolean) CreateInstance(Type, Boolean)

指定された型のパラメーターなしのコンストラクターを使用して、指定された型のインスタンスを作成します。Creates an instance of the specified type using that type's parameterless constructor.

public:
 static System::Object ^ CreateInstance(Type ^ type, bool nonPublic);
public static object CreateInstance (Type type, bool nonPublic);
static member CreateInstance : Type * bool -> obj

パラメーター

type
Type Type Type Type

作成するオブジェクトの型。The type of object to create.

nonPublic
Boolean Boolean Boolean Boolean

パブリックまたはパブリックでないパラメーターなしのコンストラクターを一致させる場合は true。パブリックのパラメーターなしのコンストラクターだけを一致させる場合は falsetrue if a public or nonpublic parameterless constructor can match; false if only a public parameterless constructor can match.

戻り値

新しく作成されたオブジェクトへの参照。A reference to the newly created object.

例外

typeRuntimeType ではありません。type is not a RuntimeType.

または-or- type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder にすることはできません。type cannot be a TypeBuilder.

または-or- TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

または-or- type を格納するアセンブリは Save を使用して作成された動的アセンブリです。The assembly that contains type is a dynamic assembly that was created with Save.

呼び出されるコンストラクターは例外をスローします。The constructor being called throws an exception.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID または GetTypeFromCLSID を通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

一致するパブリック コンストラクターが見つかりませんでした。No matching public constructor was found.

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type は有効な型ではありません。type is not a valid type.

注釈

注意

以降では、このメソッドを使用して、呼び出し元に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 nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to 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.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
許可セットに関係なく、非パブリックな型とメンバーにアクセスするための。for accessing nonpublic types and members regardless of their grant set. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String) CreateInstance(String, String) CreateInstance(String, String) CreateInstance(String, String)

名前を指定したアセンブリと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName);
static member CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String) As ObjectHandle

パラメーター

assemblyName
String String String String

typeName という名前の型をシークする場所となるアセンブリの名前。The name of the assembly where the type named typeName is sought. assemblyNamenull の場合は、実行中のアセンブリが検索されます。If assemblyName is null, the executing assembly is searched.

typeName
String String String String

必要な型の完全修飾名。The fully qualified name of the preferred type.

戻り値

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。A handle that must be unwrapped to access the newly created instance.

例外

一致するパブリック コンストラクターが見つかりませんでした。No matching public constructor was found.

typenameassemblyName に見つかりませんでした。typename was not found in assemblyName.

assemblyName が見つかりませんでした。assemblyName was not found.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。You cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID または GetTypeFromCLSIDを通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

assemblyName は正しいアセンブリではありません。assemblyName is not a valid assembly.

または-or- 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。An assembly or module was loaded twice with two different evidences.

または-or-

アセンブリ名かコード ベースが正しくありません。The assembly name or code base is invalid.

次の例では、とPersonいう名前PersonInfoのアセンブリにという名前のクラスを定義しています。The following example defines a class named Person in an assembly named PersonInfo. Personクラスには2つのコンストラクターがあり、そのうちの1つがパラメーターなしであることに注意してください。Note that the Person class has two constructors, one of which is parameterless.

using System;

public class Person
{
   private string _name;
   
   public Person()
   { }
   
   public Person(string name)
   {
      this._name = name;
   }
   
   public string Name
   { get { return this._name; }
     set { this._name = value; } }
   
   public override string ToString()
   {
      return this._name;
   }
}
Public Class Person
   Private _name As String
   
   Public Sub New()
   End Sub
   
   Public Sub New(name As String)
      Me._name = name
   End Sub
   
   Public Property Name As String
      Get
         Return Me._name
      End Get
      Set
         Me._name = value
      End Set
   End Property
   
   Public Overrides Function ToString() As String
      Return Me._name
   End Function
End Class

次の例ではCreateInstance(String, String) 、メソッドを呼び出しPersonて、クラスをインスタンス化しています。The following example calls the CreateInstance(String, String) method to instantiate the Person class. このためには、プロジェクトに追加するための参照が必要です。It requires a reference to PersonInfo.dll to be added to the project. メソッドはCreateInstance(String, String)パラメーターなしのPersonクラスのコンストラクターを呼び出すため、この例でNameはプロパティに値を割り当てています。Because the CreateInstance(String, String) method calls the Person class parameterless constructor, the example assigns a value to its Name property.

using System;
using System.Runtime.Remoting;

public class Example
{
   public static void Main()
   {
      ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
      Person p = (Person) handle.Unwrap();
      p.Name = "Samuel";
      Console.WriteLine(p);
   }
}
// The example displays the following output:
//        Samuel
Imports System.Runtime.Remoting

Module Example
   Public Sub Main()
      Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
      Dim p As Person = CType(handle.Unwrap(), Person)
      p.Name = "Samuel"
      Console.WriteLine(p)
   End Sub
End Module
' The example displays the following output:
'       Samuel

ただし、 CreateInstanceは、コンピューターの境界を越えているか、デザイン時に認識されていない型をインスタンス化するために頻繁に呼び出されます。However, CreateInstance is frequently called to instantiate a type that crosses machine boundaries or that is not known at design time. この場合、プロジェクトにアセンブリへの参照を含めることはできず、その型のメンバーへの事前バインディング呼び出しを行うことはできません。In this case, you cannot include a reference to the assembly in the project and cannot make early-bound calls to the type's members. この制限を回避するには、次の例CreateInstanceでは、リフレクションと共にメソッドを使用PersonしてName 、オブジェクトのプロパティに値を割り当て、その値を表示します。To work around this limitation, the following example uses the CreateInstance method along with reflection to assign a value to the Person object's Name property and to display its value.

using System;
using System.Reflection;
using System.Runtime.Remoting;

public class Example
{
   public static void Main()
   {
      ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
      Object p = handle.Unwrap();
      Type t = p.GetType();
      PropertyInfo prop = t.GetProperty("Name");
      if (prop != null)
         prop.SetValue(p, "Samuel");

      MethodInfo method = t.GetMethod("ToString");
      Object retVal = method.Invoke(p, null); 
      if (retVal != null)
         Console.WriteLine(retVal);
   }
}
// The example displays the following output:
//        Samuel
Imports System.Reflection
Imports System.Runtime.Remoting

Module Example
   Public Sub Main()
      Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
      Dim p As Object = handle.Unwrap()
      Dim t As Type = p.GetType()
      Dim prop As PropertyInfo = t.GetProperty("Name")
      if Not prop Is Nothing Then
         prop.SetValue(p, "Samuel")
      End If   
      Dim method As MethodInfo = t.GetMethod("ToString")
      Dim retVal As Object = method.Invoke(p, Nothing) 
      If Not retVal Is Nothing Then
         Console.WriteLine(retVal)
      End If
   End Sub
End Module
' The example displays the following output:
'       Samuel

注釈

戻りObjectHandle.Unwrap値のラップを解除するには、を使用します。Use ObjectHandle.Unwrap to unwrap the return value.

assemblyName次のいずれかを指定できます。assemblyName can be either of the following:

  • アセンブリのパスまたはファイル拡張子を持たない単純な名前。The simple name of an assembly, without its path or file extension. たとえば、.\bin\TypeExtensions.dll. というパスTypeExtensionsと名前を持つアセンブリに対してを指定します。For example, you would specify TypeExtensions for an assembly whose path and name are .\bin\TypeExtensions.dll.

  • 単純な名前、バージョン、カルチャ、および公開キートークンで構成される署名付きアセンブリの完全名。たとえば、"TypeExtensions, Version = 1.0.0.0, Culture = ニュートラル, PublicKeyToken = 181869f2f7435b51" のようになります。The full name of a signed assembly, which consists of its simple name, version, culture, and public key token; for example, "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51".

共通言語ランタイムがアセンブリを識別および読み込む方法の詳細については、「ランタイムがアセンブリを検索する方法」を参照してください。For more information on how the common language runtime identifies and loads assemblies, see How the Runtime Locates Assemblies. アプリケーション構成ファイルを使用してアセンブリの場所を定義する方法の詳細については、「アセンブリの場所の指定」を参照してください。For information on using the application configuration file to define assembly locations, see Specifying an Assembly's Location. assemblyName見つかった場合は、既定のコンテキストで読み込まれます。If assemblyName is found, it is loaded in the default context.

注意

以降では、このメソッドを使用して、呼び出し元が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 create nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to 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.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
許可セットに関係なく、非パブリック型にアクセスします。for accessing nonpublic types regardless of their grant set. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(ActivationContext, String[]) CreateInstance(ActivationContext, String[]) CreateInstance(ActivationContext, String[])

指定した ActivationContext オブジェクトによって決定され、指定したカスタム アクティベーション データによってアクティブにされる型のインスタンスを作成します。Creates an instance of the type that is designated by the specified ActivationContext object and activated with the specified custom activation data.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext, cli::array <System::String ^> ^ activationCustomData);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext, string[] activationCustomData);
static member CreateInstance : ActivationContext * string[] -> System.Runtime.Remoting.ObjectHandle

パラメーター

activationContext
ActivationContext ActivationContext ActivationContext ActivationContext

作成するオブジェクトを指定するアクティベーション コンテキスト オブジェクト。An activation context object that specifies the object to create.

activationCustomData
String[]

カスタム アクティベーション データを格納する Unicode 文字列の配列。An array of Unicode strings that contain custom activation data.

戻り値

新しく作成されたオブジェクトにアクセスするために、ラップを解除する必要があるハンドル。A handle that must be unwrapped to access the newly created object.

注釈

ObjectHandle.Unwrapメソッドを使用して、戻り値のラップを解除します。Use the ObjectHandle.Unwrap method to unwrap the return value.

アクティベーションコンテキストは、マニフェストに基づくアクティベーション中に、ドメインポリシーを設定し、アプリケーションベースのセキュリティモデルを提供するために使用されます。The activation context is used during manifest-based activation to set up the domain policy and to provide an application-based security model. クラスには、 ApplicationIdentityアプリケーションマニフェストへのアクセスを提供するオブジェクトが含まれています。 ActivationContextThe ActivationContext class contains an ApplicationIdentity object that provides access to the application manifest. 詳細については、ApplicationSecurityManager クラスを参照してください。For more information, see the ApplicationSecurityManager class.

こちらもご覧ください

CreateInstance(Type) CreateInstance(Type) CreateInstance(Type)

指定された型のパラメーターなしのコンストラクターを使用して、指定された型のインスタンスを作成します。Creates an instance of the specified type using that type's parameterless constructor.

public:
 static System::Object ^ CreateInstance(Type ^ type);
public static object CreateInstance (Type type);
static member CreateInstance : Type -> obj

パラメーター

type
Type Type Type Type

作成するオブジェクトの型。The type of object to create.

戻り値

新しく作成されたオブジェクトへの参照。A reference to the newly created object.

例外

typeRuntimeType ではありません。type is not a RuntimeType.

- または --or- type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。type is an open generic type (that is, the ContainsGenericParameters property returns true).

typeTypeBuilder にすることはできません。type cannot be a TypeBuilder.

- または --or- TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- または --or- type を格納するアセンブリは Save を使用して作成された動的アセンブリです。The assembly that contains type is a dynamic assembly that was created with Save.

呼び出されるコンストラクターは例外をスローします。The constructor being called throws an exception.

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

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

GetTypeFromProgID または GetTypeFromCLSID を通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

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

一致するパブリック コンストラクターが見つかりませんでした。No matching public constructor was found.

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type は有効な型ではありません。type is not a valid type.

CreateInstance(Type)メソッドを呼び出す方法を次のコード例に示します。The following code example demonstrates how to call the CreateInstance(Type) method. 複数の異なる型のインスタンスが作成され、その既定値が表示されます。Instances of several different types are created and their default values are displayed.

using namespace System;

ref class DynamicInstanceList
{
private:
    static String^ instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

public:
    static void Main()
    {
        array<String^>^ instances = instanceSpec->Split(';');
        Array^ instlist = Array::CreateInstance(Object::typeid, instances->Length);
        Object^ item;

        for (int i = 0; i < instances->Length; i++)
        {
            // create the object from the specification string
            Console::WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator::CreateInstance(Type::GetType(instances[i]));
            instlist->SetValue(item, i);
        }
        Console::WriteLine("\nObjects and their default values:\n");
        for each (Object^ o in instlist)
        {
            Console::WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o->GetType()->FullName, o->ToString(), o->GetHashCode());
        }
    }
};

int main()
{
    DynamicInstanceList::Main();
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
using System;

class DynamicInstanceList
{
    private static string instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

    public static void Main()
    {
        string[] instances = instanceSpec.Split(';');
        Array instlist = Array.CreateInstance(typeof(object), instances.Length);
        object item;
        for (int i = 0; i < instances.Length; i++)
        {
            // create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator.CreateInstance(Type.GetType(instances[i]));
            instlist.SetValue(item, i);
        }
        Console.WriteLine("\nObjects and their default values:\n");
        foreach (object o in instlist)
        {
            Console.WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o.GetType().FullName, o.ToString(), o.GetHashCode());
        }
    }
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
Class DynamicInstanceList
    Private Shared instanceSpec As String = "System.EventArgs;System.Random;" + _
        "System.Exception;System.Object;System.Version"

    Public Shared Sub Main()
        Dim instances() As String = instanceSpec.Split(";")
        Dim instlist As Array = Array.CreateInstance(GetType(Object), instances.Length)
        Dim item As Object

        For i As Integer = 0 To instances.Length -1
            ' create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances(i))
            item = Activator.CreateInstance(Type.GetType(instances(i)))
            instlist.SetValue(item, i)
        Next i
        Console.WriteLine(vbNewLine + "Objects and their default values:" + vbNewLine)
        For Each o As Object In instlist
            Console.WriteLine("Type:     {0}" + vbNewLine + "Value:    {1}" + _
                vbNewLine + "HashCode: {2}" + vbNewLine, _
                o.GetType().FullName, o.ToString(), o.GetHashCode())
        Next o
    End Sub
End Class

' This program will display output similar to the following:
'
' Creating instance of: System.EventArgs
' Creating instance of: System.Random
' Creating instance of: System.Exception
' Creating instance of: System.Object
' Creating instance of: System.Version
'
' Objects and their default values:
'
' Type:     System.EventArgs
' Value:    System.EventArgs
' HashCode: 46104728
'
' Type:     System.Random
' Value:    System.Random
' HashCode: 12289376
'
' Type:     System.Exception
' Value:    System.Exception: Exception of type 'System.Exception' was thrown.
' HashCode: 55530882
'
' Type:     System.Object
' Value:    System.Object
' HashCode: 30015890
'
' Type:     System.Version
' Value:    0.0
' HashCode: 1048575

注釈

呼び出すコンストラクターにアクセスできる必要があります。The constructor to be invoked must be accessible.

注意

以降では、このメソッドを使用して、呼び出し元に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 nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to 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.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
許可セットに関係なく、非パブリック型にアクセスします。for accessing nonpublic types regardless of their grant sets. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

CreateInstance(ActivationContext) CreateInstance(ActivationContext) CreateInstance(ActivationContext)

指定した ActivationContext オブジェクトによって決定される型のインスタンスを作成します。Creates an instance of the type designated by the specified ActivationContext object.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext);
static member CreateInstance : ActivationContext -> System.Runtime.Remoting.ObjectHandle

パラメーター

activationContext
ActivationContext ActivationContext ActivationContext ActivationContext

作成するオブジェクトを指定するアクティベーション コンテキスト オブジェクト。An activation context object that specifies the object to create.

戻り値

新しく作成されたオブジェクトにアクセスするために、ラップを解除する必要があるハンドル。A handle that must be unwrapped to access the newly created object.

注釈

ObjectHandle.Unwrapメソッドを使用して、戻り値のラップを解除します。Use the ObjectHandle.Unwrap method to unwrap the return value.

アクティベーションコンテキストは、マニフェストに基づくアクティベーション中に、ドメインポリシーを設定し、アプリケーションベースのセキュリティモデルを提供するために使用されます。The activation context is used during manifest-based activation to set up the domain policy and to provide an application-based security model. クラスには、 ApplicationIdentityアプリケーションマニフェストへのアクセスを提供するオブジェクトが含まれています。 ActivationContextThe ActivationContext class contains an ApplicationIdentity object that provides access to the application manifest. 詳細については、ApplicationSecurityManager クラスを参照してください。For more information, see the ApplicationSecurityManager class.

こちらもご覧ください

CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String)

名前を指定したアセンブリとパラメーターなしのコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName);
static member CreateInstance : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String) As ObjectHandle

パラメーター

domain
AppDomain AppDomain AppDomain AppDomain

typeName という名前の型が作成されるリモート ドメイン。The remote domain where the type named typeName is created.

assemblyName
String String String String

typeName という名前の型をシークする場所となるアセンブリの名前。The name of the assembly where the type named typeName is sought. assemblyNamenull の場合は、実行中のアセンブリが検索されます。If assemblyName is null, the executing assembly is searched.

typeName
String String String String

必要な型の完全修飾名。The fully qualified name of the preferred type.

戻り値

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。A handle that must be unwrapped to access the newly created instance.

例外

typeName または domainnull です。typeName or domain is null.

一致するパブリック コンストラクターが見つかりませんでした。No matching public constructor was found.

typenameassemblyName に見つかりませんでした。typename was not found in assemblyName.

assemblyName が見つかりませんでした。assemblyName was not found.

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。The caller does not have permission to call this constructor.

抽象型のインスタンスは作成できません。Cannot create an instance of an abstract type.

- または --or-

このメンバーは、遅延バインディング メカニズムで呼び出されました。This member was invoked with a late-binding mechanism.

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。The constructor, which was invoked through reflection, threw an exception.

GetTypeFromProgID または GetTypeFromCLSIDを通じて COM 型が取得されませんでした。The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

assemblyName は正しいアセンブリではありません。assemblyName is not a valid assembly.

または-or- 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。An assembly or module was loaded twice with two different evidences.

または-or-

アセンブリ名かコード ベースが正しくありません。The assembly name or code base is invalid.

注釈

ホストCreateInstanceが、セキュリティアクセス許可が制限されたアプリケーションドメインでコードを実行する必要がある場合に使用します。Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

戻りObjectHandle.Unwrap値のラップを解除するには、を使用します。Use ObjectHandle.Unwrap to unwrap the return value.

注意

このメソッドはSecurityAction.LinkDemand 、を使用して、直前の呼び出し元に完全信頼を与えるように要求します。This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

セキュリティ

SecurityPermission
デリゲートのインスタンスを作成するときに、アンマネージコードを呼び出すことができるようにします。for the ability to call unmanaged code when creating an instance of a delegate. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
すべての型のメンバーに対して操作を呼び出すことができる。for the ability to invoke operations on all type members. 関連付けられた列挙型:MemberAccessAssociated enumeration: MemberAccess

SecurityCriticalAttribute
直前の呼び出し元に完全信頼が必要です。requires full trust for the immediate caller. このメンバーは、部分的に信頼されているコードまたは透過的なコードでは使用できません。This member cannot be used by partially trusted or transparent code.

CreateInstance<T>() CreateInstance<T>() CreateInstance<T>() CreateInstance<T>()

パラメーターなしのコンストラクターを使用して、指定されたジェネリック型パラメーターによって決定される型のインスタンスを作成します。Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

public:
generic <typename T>
 static T CreateInstance();
public static T CreateInstance<T> ();
static member CreateInstance : unit -> 'T
Public Shared Function CreateInstance(Of T) () As T

型パラメーター

T

作成する型。The type to create.

戻り値

T T T T

新しく作成されたオブジェクトへの参照。A reference to the newly created object.

例外

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

抽象クラスのインスタンスを作成できません。または、T に指定されている型にパラメーターなしのコンストラクターがありません。Cannot create an instance of an abstract class, or the type that is specified for T does not have a parameterless constructor.

注釈

ジェネリックCreateInstance<T>()メソッドは、型パラメーターによって指定された型のインスタンス化を実装するために、コンパイラによって使用されます。The CreateInstance<T>() generic method is used by compilers to implement the instantiation of types specified by type parameters. たとえば、次のジェネリックメソッドnew T()では、(gcnew T()のC++) の実装でジェネリックメソッドCreateInstance<T>()が使用されます。For example, in the following generic method, the implementation of new T() (gcnew T() in C++) uses the CreateInstance<T>() generic method.

public:
    generic <typename T> where T:gcnew()
    static T Bar()
    {
        return gcnew T();
    }
public static T Factory<T>() where T : new()
{
    return new T();
}
Public Shared Function Factory(Of T As New)() As T
    Return New T()
End Function

一般に、型はコンパイル時に既知CreateInstance<T>()である必要があるため、アプリケーションコードにはジェネリックメソッドは使用されません。In general, there is no use for the CreateInstance<T>() generic method in application code, because the type must be known at compile time. コンパイル時に型がわかっている場合は、通常のインスタンス化構文newを使用C#できNewます (でgcnewはC++、in Visual Basic では演算子)。If the type is known at compile time, normal instantiation syntax can be used (new operator in C#, New in Visual Basic, gcnew in C++). コンパイル時に型が不明な場合は、のCreateInstance非ジェネリックオーバーロードを呼び出すことができます。If the type is not known at compile time, you can call a non-generic overload of CreateInstance.

引数リストを受け取るCreateInstance<T>()ジェネリックメソッドのオーバーロードはありません。のCreateInstance非ジェネリックオーバーロードは、既に遅延バインディングされたコンストラクター解決を提供しているためです。There are no overloads of the CreateInstance<T>() generic method that take argument lists, because the non-generic overloads of CreateInstance already provide late-bound constructor resolution.

適用対象