Activator.CreateInstance メソッド

定義

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

オーバーロード

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
互換性のために残されています。

名前を指定したアセンブリと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

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

名前を指定したアセンブリと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

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

名前を指定したアセンブリと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

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

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

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

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

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

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

CreateInstance(String, String, Object[])

名前を指定したアセンブリと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
互換性のために残されています。

名前を指定したアセンブリと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

CreateInstance(Type, Object[])

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

CreateInstance(Type, Boolean)

指定された型のパラメーターなしのコンストラクターを使用して、指定された型のインスタンスを作成します。

CreateInstance(String, String)

名前を指定したアセンブリと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

CreateInstance(ActivationContext, String[])

指定した ActivationContext オブジェクトによって決定され、指定したカスタム アクティベーション データによってアクティブにされる型のインスタンスを作成します。

CreateInstance(Type)

指定された型のパラメーターなしのコンストラクターを使用して、指定された型のインスタンスを作成します。

CreateInstance(ActivationContext)

指定した ActivationContext オブジェクトによって決定される型のインスタンスを作成します。

CreateInstance(AppDomain, String, String)

名前を指定したアセンブリとパラメーターなしのコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

CreateInstance<T>()

パラメーターなしのコンストラクターを使用して、指定されたジェネリック型パラメーターによって決定される型のインスタンスを作成します。

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

注意事項

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(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);
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);
[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
[<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>]
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
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityAttributes As Evidence) As ObjectHandle

パラメーター

domain
AppDomain

typeName という名前の型が作成されるドメイン。

assemblyName
String

typeName という名前の型をシークする場所となるアセンブリの名前。 assemblyNamenull の場合は、実行中のアセンブリが検索されます。

typeName
String

インスタンスを作成する型の完全修飾名。

ignoreCase
Boolean

typeName の検索で大文字と小文字を区別しない場合は true。検索で大文字と小文字を区別する場合は false

bindingAttr
BindingFlags

typeName コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。 bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。

binder
Binder

bindingAttr および args を使用して typeName コンストラクターをシークおよび識別するオブジェクト。 bindernull の場合は、既定のバインダーが使用されます。

args
Object[]

数、順序、および型が、呼び出すコンストラクターのパラメーターと一致する引数の配列です。 args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。

culture
CultureInfo

args から typeName コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。 culturenull の場合は、現在のスレッドの CultureInfo が使用されます。

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。 通常、これは単一の UrlAttribute オブジェクトを含む配列です。 UrlAttribute により、リモート オブジェクトのアクティブ化に必要な URL が指定されます。

securityAttributes
Evidence

セキュリティ ポリシーがコードに与えるアクセス許可を決定するために使用する情報。

戻り値

ObjectHandle

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。

属性

例外

domain または typeNamenull です。

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

typenameassemblyName で見つかりませんでした。

assemblyName が見つかりませんでした。

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。

  • または - args と最もよく一致するコンストラクターに varargs 引数があります。

assemblyName は有効なアセンブリではありません。

  • または - 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。 .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。

  • または -

アセンブリ名かコード ベースが正しくありません。

注釈

このメソッドは、 null 値のないインスタンスに Nullable<T> 対して返されます。

セキュリティアクセス許可が制限されているアプリケーション ドメインでホストがコードを実行する必要がある場合に使用 CreateInstance します。

戻り値のラップを解除するために使用 ObjectHandle.Unwrap します。

適用対象

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

名前を指定したアセンブリと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

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);
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As ObjectHandle

パラメーター

domain
AppDomain

typeName という名前の型が作成されるドメイン。

assemblyName
String

typeName という名前の型をシークする場所となるアセンブリの名前。 assemblyNamenull の場合は、実行中のアセンブリが検索されます。

typeName
String

インスタンスを作成する型の完全修飾名。

ignoreCase
Boolean

typeName の検索で大文字と小文字を区別しない場合は true。検索で大文字と小文字を区別する場合は false

bindingAttr
BindingFlags

typeName コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。 bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。

binder
Binder

bindingAttr および args を使用して typeName コンストラクターをシークおよび識別するオブジェクト。 bindernull の場合は、既定のバインダーが使用されます。

args
Object[]

数、順序、および型が、呼び出すコンストラクターのパラメーターと一致する引数の配列です。 args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。

culture
CultureInfo

args から typeName コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。 culturenull の場合は、現在のスレッドの CultureInfo が使用されます。

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。 これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。 クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。

戻り値

ObjectHandle

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。

属性

例外

domain または typeNamenull です。

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

typenameassemblyName で見つかりませんでした。

assemblyName が見つかりませんでした。

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。

  • または - args と最もよく一致するコンストラクターに varargs 引数があります。

assemblyName は有効なアセンブリではありません。

  • または - 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。 .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。

  • または -

アセンブリ名かコード ベースが正しくありません。

注釈

セキュリティアクセス許可が制限されているアプリケーション ドメインでホストがコードを実行する必要がある場合に使用 CreateInstance します。

このメソッドは、 null 値のないインスタンスに Nullable<T> 対して返されます。

戻り値のラップを解除するために使用 ObjectHandle.Unwrap します。

適用対象

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

名前を指定したアセンブリと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

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);
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
Public Shared Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As ObjectHandle

パラメーター

assemblyName
String

typeName という名前の型をシークする場所となるアセンブリの名前。 assemblyNamenull の場合は、実行中のアセンブリが検索されます。

typeName
String

インスタンスを作成する型の完全修飾名。

ignoreCase
Boolean

typeName の検索で大文字と小文字を区別しない場合は true。検索で大文字と小文字を区別する場合は false

bindingAttr
BindingFlags

typeName コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。 bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。

binder
Binder

bindingAttr および args を使用して typeName コンストラクターをシークおよび識別するオブジェクト。 bindernull の場合は、既定のバインダーが使用されます。

args
Object[]

数、順序、および型が、呼び出すコンストラクターのパラメーターと一致する引数の配列です。 args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。

culture
CultureInfo

args から typeName コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。 culturenull の場合は、現在のスレッドの CultureInfo が使用されます。

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。 これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。 クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。

戻り値

ObjectHandle

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。

例外

typeNamenullです。

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

typenameassemblyName で見つかりませんでした。

assemblyName が見つかりませんでした。

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。

  • または - args と最もよく一致するコンストラクターに varargs 引数があります。

assemblyName は有効なアセンブリではありません。

  • または - 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。 .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。

  • または -

アセンブリ名かコード ベースが正しくありません。

注釈

戻り値のラップを解除するために使用 ObjectHandle.Unwrap します。

このメソッドは、 null 値のないインスタンスに Nullable<T> 対して返されます。

注意

.NET Framework 2.0 Service Pack 1 以降では、このメソッドを使用して、呼び出し元がフラグを使用ReflectionPermissionFlag.RestrictedMemberAccessして許可ReflectionPermissionされている場合、および非発行型とメンバーを含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合、このメソッドを使用して非パブリック型とメンバーを作成できます。 ( リフレクションのセキュリティに関する考慮事項を参照してください)。

この機能を使用するには、アプリケーションで .NET Framework 3.5 以降を対象にする必要があります。

適用対象

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

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

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);
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
Public Shared Function CreateInstance (type As Type, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As Object

パラメーター

type
Type

作成するオブジェクトの型です。

bindingAttr
BindingFlags

type コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。 bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。

binder
Binder

bindingAttr および args を使用して type コンストラクターをシークおよび識別するオブジェクト。 bindernull の場合は、既定のバインダーが使用されます。

args
Object[]

数、順序、および型が、呼び出すコンストラクターのパラメーターと一致する引数の配列です。 args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。

culture
CultureInfo

args から type コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。 culturenull の場合は、現在のスレッドの CultureInfo が使用されます。

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。 これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。 クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。

戻り値

Object

新しく作成されたオブジェクトへの参照です。

例外

typenullです。

typeRuntimeType ではありません。

  • または - type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。

typeTypeBuilder にすることはできません。

  • または - TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。

  • または - type を格納するアセンブリは、Save を使用して作成された動的アセンブリです。

  • または - args と最もよく一致するコンストラクターに varargs 引数があります。

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

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

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

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。

type が有効な型ではありません。

注釈

呼び出されるコンストラクターは、指定したバインダーとバインド属性の制約の下で、指定された引数リストとの最も具体的な一致を提供する必要があります。

このメソッドは、 null 値のないインスタンスに Nullable<T> 対して返されます。

注意

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

この機能を使用するには、アプリケーションで .NET Framework 3.5 以降をターゲットにする必要があります。

適用対象

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

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

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);
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
Public Shared Function CreateInstance (type As Type, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo) As Object

パラメーター

type
Type

作成するオブジェクトの型です。

bindingAttr
BindingFlags

type コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。 bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。

binder
Binder

bindingAttr および args を使用して type コンストラクターをシークおよび識別するオブジェクト。 bindernull の場合は、既定のバインダーが使用されます。

args
Object[]

数、順序、および型が、呼び出すコンストラクターのパラメーターと一致する引数の配列です。 args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。

culture
CultureInfo

args から type コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。 culturenull の場合は、現在のスレッドの CultureInfo が使用されます。

戻り値

Object

新しく作成されたオブジェクトへの参照です。

例外

typenullです。

typeRuntimeType ではありません。

  • または - type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。

typeTypeBuilder にすることはできません。

  • または - TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - type を格納するアセンブリは、Save を使用して作成された動的アセンブリです。

  • または - args と最もよく一致するコンストラクターに varargs 引数があります。

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

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

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

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。

type が有効な型ではありません。

注釈

呼び出されるコンストラクターは、指定したバインダーとバインド属性の制約の下で、指定された引数リストとの最も具体的な一致を提供する必要があります。

このメソッドは、 null 値のないインスタンスに Nullable<T> 対して返されます。

注意

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

この機能を使用するには、アプリケーションで .NET Framework 3.5 以降をターゲットにする必要があります。

適用対象

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

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

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);
public static object CreateInstance (Type type, object[] args, object[] activationAttributes);
static member CreateInstance : Type * obj[] * obj[] -> obj
Public Shared Function CreateInstance (type As Type, args As Object(), activationAttributes As Object()) As Object

パラメーター

type
Type

作成するオブジェクトの型です。

args
Object[]

数、順序、および型が、呼び出すコンストラクターのパラメーターと一致する引数の配列です。 args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。 これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。 クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。

戻り値

Object

新しく作成されたオブジェクトへの参照です。

例外

typenullです。

typeRuntimeType ではありません。

  • または - type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。

typeTypeBuilder にすることはできません。

  • または - TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。

  • または - type を格納するアセンブリは、Save を使用して作成された動的アセンブリです。

  • または - args と最もよく一致するコンストラクターに varargs 引数があります。

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

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

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

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。

type が有効な型ではありません。

注釈

呼び出されるコンストラクターはアクセス可能で、指定された引数リストとの最も具体的な一致を提供する必要があります。

このメソッドは、 null 値のないインスタンスに Nullable<T> 対して返されます。

注意

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

この機能を使用するには、アプリケーションで .NET Framework 3.5 以降をターゲットにする必要があります。

適用対象

CreateInstance(String, String, Object[])

名前を指定したアセンブリと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

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);
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

typeName という名前の型をシークする場所となるアセンブリの名前。 assemblyNamenull の場合は、実行中のアセンブリが検索されます。

typeName
String

インスタンスを作成する型の完全修飾名。

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。 これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。 クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。

戻り値

ObjectHandle

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。

例外

typeNamenullです。

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

typenameassemblyName で見つかりませんでした。

assemblyName が見つかりませんでした。

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。

  • または - activationAttributesUrlAttribute ではありません。

配列。

assemblyName は有効なアセンブリではありません。

  • または - 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。 .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。

  • または -

アセンブリ名かコード ベースが正しくありません。

activationAttributes で指定されたターゲットでリモートからのアクティブ化を試みたときにエラーが発生しました。

注釈

このメソッドは、 null インスタンスに対して Nullable<T> 返されます。

戻り値のラップを解除するために使用 ObjectHandle.Unwrap します。

注意

.NET Framework 2.0 Service Pack 1 以降では、このメソッドを使用して、呼び出し元にフラグが付与ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccessされている場合、および非公開型の許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合は、非パブリック型を作成できます。 ( リフレクションのセキュリティに関する考慮事項を参照してください)。

この機能を使用するには、アプリケーションで .NET Framework 3.5 以降をターゲットにする必要があります。

適用対象

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

注意事項

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(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);
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);
[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
[<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.")>]
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
Public Shared Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityInfo As Evidence) As ObjectHandle

パラメーター

assemblyName
String

typeName という名前の型をシークする場所となるアセンブリの名前。 assemblyNamenull の場合は、実行中のアセンブリが検索されます。

typeName
String

インスタンスを作成する型の完全修飾名。

ignoreCase
Boolean

typeName の検索で大文字と小文字を区別しない場合は true。検索で大文字と小文字を区別する場合は false

bindingAttr
BindingFlags

typeName コンストラクターの検索に影響を与える 0 個以上のビット フラグの組み合わせ。 bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクターを検索します。

binder
Binder

bindingAttr および args を使用して typeName コンストラクターをシークおよび識別するオブジェクト。 bindernull の場合は、既定のバインダーが使用されます。

args
Object[]

数、順序、および型が、呼び出すコンストラクターのパラメーターと一致する引数の配列です。 args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。

culture
CultureInfo

args から typeName コンストラクターに対して宣言された仮引数型への強制変換を制御するカルチャ固有の情報。 culturenull の場合は、現在のスレッドの CultureInfo が使用されます。

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。 これは、通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列です。

このパラメーターは、クライアント側でアクティブ化されるオブジェクトに関連しています。 クライアント アクティベーションは、下位互換性のために残されているレガシ テクノロジです。新規の開発には使用しないでください。 分散アプリケーションは、代わりに Windows Communication Foundation (WCF) を使用する必要があります。

securityInfo
Evidence

セキュリティ ポリシーがコードに与えるアクセス許可を決定するために使用する情報。

戻り値

ObjectHandle

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。

属性

例外

typeNamenullです。

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

typenameassemblyName で見つかりませんでした。

assemblyName が見つかりませんでした。

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - activationAttributes が空の配列ではないか、作成される型が MarshalByRefObject から派生したものではありません。

  • または - args と最もよく一致するコンストラクターに varargs 引数があります。

assemblyName は有効なアセンブリではありません。

  • または - 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。 .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。

  • または -

アセンブリ名かコード ベースが正しくありません。

注釈

このメソッドは、 null 値のないインスタンスに Nullable<T> 対して返されます。

戻り値のラップを解除するために使用 ObjectHandle.Unwrap します。

注意

.NET Framework 2.0 Service Pack 1 以降では、このメソッドを使用して、呼び出し元がフラグを使用ReflectionPermissionFlag.RestrictedMemberAccessして許可ReflectionPermissionされている場合、および非発行型とメンバーを含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合、このメソッドを使用して非パブリック型とメンバーを作成できます。 ( リフレクションのセキュリティに関する考慮事項を参照してください)。

この機能を使用するには、アプリケーションで .NET Framework 3.5 以降を対象にする必要があります。

適用対象

CreateInstance(Type, Object[])

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

public:
 static System::Object ^ CreateInstance(Type ^ type, ... cli::array <System::Object ^> ^ args);
public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args);
public static object CreateInstance (Type type, params object[] args);
public static object? CreateInstance (Type type, params object?[]? args);
public static object CreateInstance (Type type, object[] args);
static member CreateInstance : Type * obj[] -> obj
Public Shared Function CreateInstance (type As Type, ParamArray args As Object()) As Object
Public Shared Function CreateInstance (type As Type, args As Object()) As Object

パラメーター

type
Type

作成するオブジェクトの型です。

args
Object[]

数、順序、および型が、呼び出すコンストラクターのパラメーターと一致する引数の配列です。 args が空の配列または null である場合は、パラメーターを受け取らないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。

戻り値

Object

新しく作成されたオブジェクトへの参照です。

例外

typenullです。

typeRuntimeType ではありません。

  • または - type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。

typeTypeBuilder にすることはできません。

  • または - TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - type を格納するアセンブリは、Save を使用して作成された動的アセンブリです。

  • または - args と最もよく一致するコンストラクターに varargs 引数があります。

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

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

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

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

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

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

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。

type が有効な型ではありません。

次の例では、メソッドを CreateInstance(Type, Object[]) 呼び出してオブジェクトを String 作成します。 コンストラクターを String.String(Char[], Int32, Int32) 呼び出して、14 番目の位置から始まる文字配列の 10 個の要素を含む文字列をインスタンス化します。

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
open System

// Initialize array of characters from a to z.
let chars = [| 'a' .. 'z' |]

let obj = Activator.CreateInstance(typeof<string>, chars[13..22])

printfn $"{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 作成します。 次に、各配列をメソッドに渡して CreateInstance(Type, Object[]) 、適切な文字列コンストラクターを呼び出します。

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
open System

let chars = [| 'a' .. 'f' |]

let arguments =
    [| chars
       chars[1..4]
       Array.create 20 chars[1] |]

for args in arguments do
    let result =
        Activator.CreateInstance(typeof<string>, args)

    printfn $"{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

注釈

呼び出すコンストラクターにはアクセス可能で、指定された引数リストとの最も具体的な一致を指定する必要があります。

このメソッドは、 null 値のないインスタンスに Nullable<T> 対して返されます。

注意

.NET Framework 2.0 Service Pack 1 以降では、このメソッドを使用して、呼び出し元がフラグを使用ReflectionPermissionFlag.RestrictedMemberAccessして許可ReflectionPermissionされている場合、および非パブリック型を含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合は、非パブリック型にアクセスできます。 ( リフレクションのセキュリティに関する考慮事項を参照してください)。

この機能を使用するには、アプリケーションで .NET Framework 3.5 以降を対象にする必要があります。

適用対象

CreateInstance(Type, Boolean)

指定された型のパラメーターなしのコンストラクターを使用して、指定された型のインスタンスを作成します。

public:
 static System::Object ^ CreateInstance(Type ^ type, bool nonPublic);
public static object? CreateInstance (Type type, bool nonPublic);
public static object CreateInstance (Type type, bool nonPublic);
static member CreateInstance : Type * bool -> obj
Public Shared Function CreateInstance (type As Type, nonPublic As Boolean) As Object

パラメーター

type
Type

作成するオブジェクトの型です。

nonPublic
Boolean

パブリックまたはパブリックでないパラメーターなしのコンストラクターを一致させる場合は true。パブリックのパラメーターなしのコンストラクターだけを一致させる場合は false

戻り値

Object

新しく作成されたオブジェクトへの参照です。

例外

typenullです。

typeRuntimeType ではありません。

  • または - type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。

typeTypeBuilder にすることはできません。

  • または - TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - type を格納するアセンブリは、Save を使用して作成された動的アセンブリです。

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

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

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

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。

type が有効な型ではありません。

注釈

このメソッドは、 null インスタンスに対して Nullable<T> 返されます。

注意

.NET Framework 2.0 Service Pack 1 以降では、このメソッドを使用して、呼び出し元がフラグを使用ReflectionPermissionFlag.RestrictedMemberAccessして許可ReflectionPermissionされている場合、および非パブリック型とメンバーを含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合、このメソッドを使用して、発行されていない型とメンバーにアクセスできます。 ( リフレクションのセキュリティに関する考慮事項を参照してください)。

この機能を使用するには、アプリケーションで .NET Framework 3.5 以降を対象にする必要があります。

適用対象

CreateInstance(String, String)

名前を指定したアセンブリと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, 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

typeName という名前の型をシークする場所となるアセンブリの名前。 assemblyNamenull の場合は、実行中のアセンブリが検索されます。

typeName
String

インスタンスを作成する型の完全修飾名。

戻り値

ObjectHandle

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。

例外

typeNamenullです。

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

typenameassemblyName で見つかりませんでした。

assemblyName が見つかりませんでした。

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

assemblyName は有効なアセンブリではありません。

  • または - 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。 .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。

  • または -

アセンブリ名かコード ベースが正しくありません。

次の例では、名前付きのアセンブリで名前付きのPerson``PersonInfoクラスを定義します。 クラスには 2 つのコンストラクターがあり Person 、そのうちの 1 つはパラメーターなしであることに注意してください。

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;
   }
}
type Person(name) =
    member val Name = name with get, set

    override this.ToString() = this.Name

    new () = Person Unchecked.defaultof<string>
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 。 PersonInfo.dllへの参照をプロジェクトに追加する必要があります。 このメソッドは CreateInstance(String, String) パラメーターなしのクラス コンストラクターを Person 呼び出すので、この例ではプロパティに値を Name 割り当てます。

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
open System

let handle = Activator.CreateInstance("PersonInfo", "Person")
let p = handle.Unwrap() :?> Person
p.Name <- "Samuel"
printfn $"{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 マシンの境界を越えるか、デザイン時に不明な型をインスタンス化するために呼び出されます。 この場合、プロジェクトにアセンブリへの参照を含めることはできません。また、型のメンバーに対して事前バインドされた呼び出しを行うことはできません。 この制限を回避するために、次の例では、リフレクションと共にメソッドをCreateInstance使用して、オブジェクトのNameプロパティに値をPerson割り当て、その値を表示します。

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
open System

let handle =
    Activator.CreateInstance("PersonInfo", "Person")

let p = handle.Unwrap()
let t = p.GetType()
let prop = t.GetProperty "Name"

if not (isNull prop) then
    prop.SetValue(p, "Samuel")

let method = t.GetMethod "ToString"
let retVal = method.Invoke(p, null)

if not (isNull retVal) then
    printfn $"{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

注釈

このメソッドは、 null インスタンスに対して Nullable<T> 返されます。

戻り値のラップを解除するために使用 ObjectHandle.Unwrap します。

assemblyName は、次のいずれかになります。

  • パスまたはファイル拡張子のないアセンブリの単純な名前。 たとえば、パスと名前が .\bin\TypeExtensions.dll であるアセンブリに対して指定 TypeExtensions します。

  • 署名付きアセンブリの完全な名前。単純な名前、バージョン、カルチャ、および公開キー トークンで構成されます。たとえば、"TypeExtensions、Version=1.0.0.0、Culture=neutral、PublicKeyToken=181869f2f7435b51" などです。

共通言語ランタイムがアセンブリを識別して読み込む方法の詳細については、「ランタイム がアセンブリを検索する方法」を参照してください。 アプリケーション構成ファイルを使用してアセンブリの場所を定義する方法については、「 アセンブリの場所の指定」を参照してください。 見つかった場合 assemblyName は、既定のコンテキストで読み込まれます。

注意

.NET Framework 2.0 Service Pack 1 以降では、このメソッドを使用して、呼び出し元がフラグを使用ReflectionPermissionFlag.RestrictedMemberAccessして許可ReflectionPermissionされている場合、および非パブリック型を含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合は、非パブリック型を作成できます。 ( リフレクションのセキュリティに関する考慮事項を参照してください)。

この機能を使用するには、アプリケーションで .NET Framework 3.5 以降を対象にする必要があります。

適用対象

CreateInstance(ActivationContext, String[])

指定した ActivationContext オブジェクトによって決定され、指定したカスタム アクティベーション データによってアクティブにされる型のインスタンスを作成します。

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
Public Shared Function CreateInstance (activationContext As ActivationContext, activationCustomData As String()) As ObjectHandle

パラメーター

activationContext
ActivationContext

作成するオブジェクトを指定するアクティベーション コンテキスト オブジェクト。

activationCustomData
String[]

カスタム アクティベーション データを格納する Unicode 文字列の配列。

戻り値

ObjectHandle

新しく作成されたオブジェクトにアクセスするために、ラップを解除する必要があるハンドル。

注釈

メソッドを ObjectHandle.Unwrap 使用して戻り値のラップを解除します。

アクティブ化コンテキストは、ドメイン ポリシーを設定し、アプリケーション ベースのセキュリティ モデルを提供するために、マニフェスト ベースのアクティブ化中に使用されます。 この ActivationContext クラスには、 ApplicationIdentity アプリケーション マニフェストへのアクセスを提供するオブジェクトが含まれています。 詳細については、ApplicationSecurityManager クラスを参照してください。

こちらもご覧ください

適用対象

CreateInstance(Type)

指定された型のパラメーターなしのコンストラクターを使用して、指定された型のインスタンスを作成します。

public:
 static System::Object ^ CreateInstance(Type ^ type);
public static object CreateInstance (Type type);
public static object? CreateInstance (Type type);
static member CreateInstance : Type -> obj
Public Shared Function CreateInstance (type As Type) As Object

パラメーター

type
Type

作成するオブジェクトの型です。

戻り値

Object

新しく作成されたオブジェクトへの参照です。

例外

typenullです。

typeRuntimeType ではありません。

  • または - type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。

typeTypeBuilder にすることはできません。

  • または - TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

  • または - type を格納するアセンブリは、Save を使用して作成された動的アセンブリです。

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

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

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

抽象クラスのインスタンスを作成することができないか、またはこのメンバーは遅延バインド メカニズムで呼び出されました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

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

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

type は COM オブジェクトですが、型を取得するために使用されるクラス ID が有効でないか、または識別されたクラスが登録されていません。

type が有効な型ではありません。

次のコード例は、メソッドを呼び出す方法を CreateInstance(Type) 示しています。 複数の異なる型のインスタンスが作成され、既定値が表示されます。

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
open System

let instanceSpec =
    "System.EventArgs;System.Random;System.Exception;System.Object;System.Version"

let instances = instanceSpec.Split ';'
let instlist = Array.zeroCreate instances.Length
let mutable item = obj ()

for i = 0 to instances.Length - 1 do
    // create the object from the specification string
    printfn $"Creating instance of: {instances.[i]}"
    item <- Activator.CreateInstance(Type.GetType instances.[i])
    instlist.[i] <- item

printfn "\nObjects and their default values:\n"

for o in instlist do
    printfn $"Type:     {o.GetType().FullName}\nValue:    {o}\nHashCode: {o.GetHashCode()}\n"


// 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(Environment.NewLine + "Objects and their default values:" + Environment.NewLine)
        For Each o As Object In instlist
            Console.WriteLine("Type:     {0}" + Environment.NewLine + "Value:    {1}" + _
                Environment.NewLine + "HashCode: {2}" + Environment.NewLine, _
                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

注釈

呼び出すコンストラクターにアクセスできる必要があります。

このメソッドは、 null インスタンスに対して Nullable<T> 返されます。

注意

.NET Framework 2.0 Service Pack 1 以降では、このメソッドを使用して、呼び出し元がフラグを使用ReflectionPermissionFlag.RestrictedMemberAccessして許可ReflectionPermissionされている場合、および非パブリック型を含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合は、非パブリック型にアクセスできます。 ( リフレクションのセキュリティに関する考慮事項を参照してください)。

この機能を使用するには、アプリケーションで .NET Framework 3.5 以降を対象にする必要があります。

適用対象

CreateInstance(ActivationContext)

指定した ActivationContext オブジェクトによって決定される型のインスタンスを作成します。

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
Public Shared Function CreateInstance (activationContext As ActivationContext) As ObjectHandle

パラメーター

activationContext
ActivationContext

作成するオブジェクトを指定するアクティベーション コンテキスト オブジェクト。

戻り値

ObjectHandle

新しく作成されたオブジェクトにアクセスするために、ラップを解除する必要があるハンドル。

注釈

このメソッドは、 null インスタンスに対して Nullable<T> 返されます。

メソッドを ObjectHandle.Unwrap 使用して戻り値のラップを解除します。

アクティブ化コンテキストは、ドメイン ポリシーを設定し、アプリケーション ベースのセキュリティ モデルを提供するために、マニフェスト ベースのアクティブ化中に使用されます。 この ActivationContext クラスには、 ApplicationIdentity アプリケーション マニフェストへのアクセスを提供するオブジェクトが含まれています。 詳細については、ApplicationSecurityManager クラスを参照してください。

こちらもご覧ください

適用対象

CreateInstance(AppDomain, String, String)

名前を指定したアセンブリとパラメーターなしのコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, 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
[<System.Security.SecurityCritical>]
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

typeName という名前の型が作成されるリモート ドメイン。

assemblyName
String

typeName という名前の型をシークする場所となるアセンブリの名前。 assemblyNamenull の場合は、実行中のアセンブリが検索されます。

typeName
String

インスタンスを作成する型の完全修飾名。

戻り値

ObjectHandle

新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。

属性

例外

typeName または domainnull です。

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

typenameassemblyName で見つかりませんでした。

assemblyName が見つかりませんでした。

呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。

抽象型のインスタンスは作成できません。

  • または -

このメンバーは、遅延バインディング メカニズムで呼び出されました。

リフレクションを通じて呼び出されたコンストラクターが、例外をスローしました。

COM 型が GetTypeFromProgID または GetTypeFromCLSID 経由で取得されませんでした。

TypedReferenceArgIteratorVoid、および RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

assemblyName は有効なアセンブリではありません。

  • または - 共通言語ランタイム (CLR) バージョン 2.0 以降が現在読み込まれており、assemblyName は現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされました。 .NET Framework のバージョン 2.0、3.0、3.5 はすべて、CLR バージョン 2.0 を使うことにご注意ください。

アセンブリまたはモジュールが、2 つの異なる証拠を使用して 2 回読み込まれました。

  • または -

アセンブリ名かコード ベースが正しくありません。

注釈

このメソッドは、 null インスタンスに対して Nullable<T> 返されます。

セキュリティアクセス許可が制限されているアプリケーション ドメインでホストがコードを実行する必要がある場合に使用 CreateInstance します。

戻り値のラップを解除するために使用 ObjectHandle.Unwrap します。

適用対象

CreateInstance<T>()

パラメーターなしのコンストラクターを使用して、指定されたジェネリック型パラメーターによって決定される型のインスタンスを作成します。

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

作成する型。

戻り値

T

新しく作成されたオブジェクトへの参照です。

例外

抽象クラスのインスタンスを作成できません。または、T に指定されている型にパラメーターなしのコンストラクターがありません。

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

注釈

CreateInstance<T>()ジェネリック メソッドは、型パラメーターで指定された型のインスタンス化を実装するためにコンパイラによって使用されます。 たとえば、次のジェネリック メソッドでは、(gcnew T()C++の場合) のnew T()実装ではジェネリック メソッドがCreateInstance<T>()使用されます。

public:
    generic <typename T> where T:gcnew()
    static T Bar()
    {
        return gcnew T();
    }
public static T Factory<T>() where T : new()
{
    return new T();
}
let factory<'T when 'T : (new: unit -> 'T)> =
    new 'T()
Public Shared Function Factory(Of T As New)() As T
    Return New T()
End Function

一般に、型はコンパイル時に CreateInstance<T>() わかっている必要があるため、アプリケーション コードのジェネリック メソッドには使用できません。 型がコンパイル時にわかっていれば、通常のインスタンス化構文を使用できます (newC# の演算子、 New Visual Basic、 gcnew C++ の演算子)。 型がコンパイル時に不明な場合は、非ジェネリック オーバーロード CreateInstanceを呼び出すことができます。

引数リストを CreateInstance<T>() 受け取るジェネリック メソッドのオーバーロードはありません。これは、ジェネリックでないオーバーロードが既に遅延バインディング コンストラクターの CreateInstance 解決を提供しているためです。

適用対象