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

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

args
Object[]

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

culture
CultureInfo

typeName コンストラクター用に宣言された正式な型への args の強制を制御するカルチャ固有の情報。 culturenullされている場合は、現在のスレッドの CultureInfo が使用されます。

activationAttributes
Object[]

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

securityAttributes
Evidence

セキュリティ ポリシーの決定を行い、コードのアクセス許可を付与するために使用される情報。

戻り値

新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル。値のない Nullable<T> インスタンスの場合は null

属性

例外

domain または typeNamenull

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

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

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

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

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

activationAttributes は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。

-又は-

args に最も一致するコンストラクターには、varargs 引数があります。

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

-又は-

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

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

-又は-

アセンブリ名またはコード ベースが無効です。

注釈

セキュリティアクセス許可が制限されているアプリケーション ドメインでホストがコードを実行する必要がある場合は、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

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

args
Object[]

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

culture
CultureInfo

typeName コンストラクター用に宣言された正式な型への args の強制を制御するカルチャ固有の情報。 culturenullされている場合は、現在のスレッドの CultureInfo が使用されます。

activationAttributes
Object[]

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

このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。

戻り値

新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル。値のない Nullable<T> インスタンスの場合は null

属性

例外

domain または typeNamenull

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

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

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

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

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

activationAttributes は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。

-又は-

args に最も一致するコンストラクターには、varargs 引数があります。

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

-又は-

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

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

-又は-

アセンブリ名またはコード ベースが無効です。

注釈

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

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

適用対象

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

ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs

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

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

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

args
Object[]

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

culture
CultureInfo

typeName コンストラクター用に宣言された正式な型への args の強制を制御するカルチャ固有の情報。 culturenullされている場合は、現在のスレッドの CultureInfo が使用されます。

activationAttributes
Object[]

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

このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。

戻り値

新しく作成されたインスタンスにアクセスするためにラップ解除する必要があるハンドル。値のない Nullable<T> インスタンスの場合は null

例外

typeNamenullです。

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

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

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

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

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

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 を使用します。

手記

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

適用対象

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

ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs

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

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

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

args
Object[]

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

culture
CultureInfo

type コンストラクター用に宣言された正式な型への args の強制を制御するカルチャ固有の情報。 culturenullされている場合は、現在のスレッドの CultureInfo が使用されます。

activationAttributes
Object[]

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

このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。

戻り値

新しく作成されたオブジェクトへの参照、または値のない Nullable<T> インスタンスの null

例外

typenullです。

typeRuntimeTypeではありません。

-又は-

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

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

-又は-

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

activationAttributes は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。

-又は-

type を含むアセンブリは、Saveで作成された動的アセンブリです。

-又は-

args に最も一致するコンストラクターには、varargs 引数があります。

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

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

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

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

注釈

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

手記

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

適用対象

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

ソース:
Activator.cs
ソース:
Activator.cs
ソース:
Activator.cs

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

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

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

args
Object[]

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

culture
CultureInfo

type コンストラクター用に宣言された正式な型への args の強制を制御するカルチャ固有の情報。 culturenullされている場合は、現在のスレッドの CultureInfo が使用されます。

戻り値

新しく作成されたオブジェクトへの参照、または値のない Nullable<T> インスタンスの null

例外

typenullです。

typeRuntimeTypeではありません。

-又は-

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

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

-又は-

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

type を含むアセンブリは、Saveで作成された動的アセンブリです。

-又は-

args に最も一致するコンストラクターには、varargs 引数があります。

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

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

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

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

注釈

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

手記

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

適用対象

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

ソース:
Activator.cs
ソース:
Activator.cs
ソース:
Activator.cs

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

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 を指定する単一の UrlAttribute オブジェクトを含む配列です。

このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。

戻り値

新しく作成されたオブジェクトへの参照、または値のない Nullable<T> インスタンスの null

例外

typenullです。

typeRuntimeTypeではありません。

-又は-

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

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

-又は-

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

activationAttributes は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。

-又は-

type を含むアセンブリは、Saveで作成された動的アセンブリです。

-又は-

args に最も一致するコンストラクターには、varargs 引数があります。

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

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

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

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

注釈

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

手記

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

適用対象

CreateInstance(String, String, Object[])

ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs

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

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 を指定する単一の UrlAttribute オブジェクトを含む配列です。

このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。

戻り値

新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル、または Nullable<T> インスタンスの null

例外

typeNamenullです。

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

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

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

activationAttributes は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。

-又は-

activationAttributesUrlAttribute ではありません

配列。

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

-又は-

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

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

-又は-

アセンブリ名またはコード ベースが無効です。

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

-又は-

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

注釈

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

手記

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

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

args
Object[]

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

culture
CultureInfo

typeName コンストラクター用に宣言された正式な型への args の強制を制御するカルチャ固有の情報。 culturenullされている場合は、現在のスレッドの CultureInfo が使用されます。

activationAttributes
Object[]

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

このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。

securityInfo
Evidence

セキュリティ ポリシーの決定を行い、コードのアクセス許可を付与するために使用される情報。

戻り値

新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル。値のない Nullable<T> インスタンスの場合は null

属性

例外

typeNamenullです。

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

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

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

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

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

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 を使用します。

手記

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

適用対象

CreateInstance(Type, Object[])

ソース:
Activator.cs
ソース:
Activator.cs
ソース:
Activator.cs

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

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の場合、パラメーターを受け取っていないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。

戻り値

新しく作成されたオブジェクトへの参照、または値のない Nullable<T> インスタンスの null

例外

typenullです。

typeRuntimeTypeではありません。

-又は-

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

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

-又は-

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

type を含むアセンブリは、Saveで作成された動的アセンブリです。

-又は-

args に最も一致するコンストラクターには、varargs 引数があります。

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

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

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

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

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

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

注釈

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

手記

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

適用対象

CreateInstance(Type, Boolean)

ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs

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

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 します。

戻り値

新しく作成されたオブジェクトへの参照、または Nullable<T> インスタンスの null

例外

typenullです。

typeRuntimeTypeではありません。

-又は-

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

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

-又は-

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

type を含むアセンブリは、Saveで作成された動的アセンブリです。

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

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

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

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

注釈

手記

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

適用対象

CreateInstance(String, String)

ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs

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

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

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

戻り値

新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル、または Nullable<T> インスタンスの null

例外

typeNamenullです。

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

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

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

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

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

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

-又は-

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

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

-又は-

アセンブリ名またはコード ベースが無効です。

次の例では、PersonInfoという名前のアセンブリに Person という名前のクラスを定義します。 Person クラスには 2 つのコンストラクターがあり、そのうちの 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 メソッドを使用して、Person オブジェクトの Name プロパティに値を割り当て、その値を表示します。

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

注釈

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

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

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

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

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

手記

.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元が 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 文字列の配列。

戻り値

新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル、または Nullable<T> インスタンスの null

注釈

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

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

こちらもご覧ください

適用対象

CreateInstance(Type)

ソース:
Activator.cs
ソース:
Activator.cs
ソース:
Activator.cs

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

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

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

戻り値

新しく作成されたオブジェクトへの参照、または Nullable<T> インスタンスの null

例外

typenullです。

typeRuntimeTypeではありません。

-又は-

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

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

-又は-

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

-又は-

type を含むアセンブリは、Saveで作成された動的アセンブリです。

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

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

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

抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

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

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

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

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

注釈

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

手記

.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元が 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

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

戻り値

新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル、または Nullable<T> インスタンスの null

注釈

戻り値のラップを解除するには、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

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

戻り値

新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル、または Nullable<T> インスタンスの null

属性

例外

typeName または domainnull

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

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

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

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

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

-又は-

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

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

COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。

TypedReferenceArgIteratorVoidRuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。

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

-又は-

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

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

-又は-

アセンブリ名またはコード ベースが無効です。

注釈

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

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

適用対象

CreateInstance<T>()

ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs
ソース:
Activator.RuntimeType.cs

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

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

新しく作成されたオブジェクトへの参照、または Nullable<T> インスタンスの null

例外

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

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

注釈

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

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

適用対象