Activator.CreateInstance メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。
オーバーロード
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
という名前の型が検索されるアセンブリの名前。
assemblyName
が null
されている場合は、実行中のアセンブリが検索されます。
- typeName
- String
インスタンスを作成する型の完全修飾名。
- ignoreCase
- Boolean
typeName
の検索で大文字と小文字が区別されないように指定 true
。検索で大文字と小文字が区別されることを指定 false
。
- bindingAttr
- BindingFlags
typeName
コンストラクターの検索に影響する 0 個以上のビット フラグの組み合わせ。
bindingAttr
が 0 の場合、パブリック コンストラクターの大文字と小文字が区別される検索が実行されます。
- binder
- Binder
bindingAttr
と args
を使用して、typeName
コンストラクターをシークして識別するオブジェクト。
binder
が null
されている場合は、既定のバインダーが使用されます。
- args
- Object[]
呼び出すコンストラクターのパラメーターを数値、順序、および型で一致する引数の配列。
args
が空の配列または null
の場合、パラメーターを受け取っていないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。
- culture
- CultureInfo
typeName
コンストラクター用に宣言された正式な型への args
の強制を制御するカルチャ固有の情報。
culture
が null
されている場合は、現在のスレッドの CultureInfo が使用されます。
- activationAttributes
- Object[]
アクティブ化に参加できる 1 つ以上の属性の配列。 これは通常、1 つの UrlAttribute オブジェクトを含む配列です。 UrlAttribute は、リモート オブジェクトをアクティブ化するために必要な URL を指定します。
- securityAttributes
- Evidence
セキュリティ ポリシーの決定を行い、コードのアクセス許可を付与するために使用される情報。
戻り値
新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル。値のない Nullable<T> インスタンスの場合は null
。
- 属性
例外
domain
または typeName
が null
。
一致するコンストラクターが見つかりませんでした。
typeName
が assemblyName
で見つかりませんでした。
assemblyName
が見つかりませんでした。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。
リフレクションを介して呼び出されたコンストラクターが例外をスローしました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
activationAttributes
は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。
-又は-
args
に最も一致するコンストラクターには、varargs
引数があります。
assemblyName
は有効なアセンブリではありません。
-又は-
現在、共通言語ランタイム (CLR) バージョン 2.0 以降が読み込まれており、assemblyName
は、現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされています。 .NET Framework バージョン 2.0、3.0、および 3.5 はすべて CLR バージョン 2.0 を使用します。
注釈
セキュリティアクセス許可が制限されているアプリケーション ドメインでホストがコードを実行する必要がある場合は、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
という名前の型が検索されるアセンブリの名前。
assemblyName
が null
されている場合は、実行中のアセンブリが検索されます。
- typeName
- String
インスタンスを作成する型の完全修飾名。
- ignoreCase
- Boolean
typeName
の検索で大文字と小文字が区別されないように指定 true
。検索で大文字と小文字が区別されることを指定 false
。
- bindingAttr
- BindingFlags
typeName
コンストラクターの検索に影響する 0 個以上のビット フラグの組み合わせ。
bindingAttr
が 0 の場合、パブリック コンストラクターの大文字と小文字が区別される検索が実行されます。
- binder
- Binder
bindingAttr
と args
を使用して、typeName
コンストラクターをシークして識別するオブジェクト。
binder
が null
されている場合は、既定のバインダーが使用されます。
- args
- Object[]
呼び出すコンストラクターのパラメーターを数値、順序、および型で一致する引数の配列。
args
が空の配列または null
の場合、パラメーターを受け取っていないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。
- culture
- CultureInfo
typeName
コンストラクター用に宣言された正式な型への args
の強制を制御するカルチャ固有の情報。
culture
が null
されている場合は、現在のスレッドの CultureInfo が使用されます。
- activationAttributes
- Object[]
アクティブ化に参加できる 1 つ以上の属性の配列。 これは通常、リモート オブジェクトのアクティブ化に必要な URL を指定する単一の UrlAttribute オブジェクトを含む配列です。
このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。
戻り値
新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル。値のない Nullable<T> インスタンスの場合は null
。
- 属性
例外
domain
または typeName
が null
。
一致するコンストラクターが見つかりませんでした。
typeName
が assemblyName
で見つかりませんでした。
assemblyName
が見つかりませんでした。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。
リフレクションを介して呼び出されたコンストラクターが例外をスローしました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
activationAttributes
は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。
-又は-
args
に最も一致するコンストラクターには、varargs
引数があります。
assemblyName
は有効なアセンブリではありません。
-又は-
現在、共通言語ランタイム (CLR) バージョン 2.0 以降が読み込まれており、assemblyName
は、現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされています。 .NET Framework バージョン 2.0、3.0、および 3.5 はすべて CLR バージョン 2.0 を使用します。
注釈
セキュリティアクセス許可が制限されているアプリケーション ドメインでホストがコードを実行する必要がある場合は、CreateInstance を使用します。
戻り値のラップを解除するには、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
という名前の型が検索されるアセンブリの名前。
assemblyName
が null
されている場合は、実行中のアセンブリが検索されます。
- typeName
- String
インスタンスを作成する型の完全修飾名。
- ignoreCase
- Boolean
typeName
の検索で大文字と小文字が区別されないように指定 true
。検索で大文字と小文字が区別されることを指定 false
。
- bindingAttr
- BindingFlags
typeName
コンストラクターの検索に影響する 0 個以上のビット フラグの組み合わせ。
bindingAttr
が 0 の場合、パブリック コンストラクターの大文字と小文字が区別される検索が実行されます。
- binder
- Binder
bindingAttr
と args
を使用して、typeName
コンストラクターをシークして識別するオブジェクト。
binder
が null
されている場合は、既定のバインダーが使用されます。
- args
- Object[]
呼び出すコンストラクターのパラメーターを数値、順序、および型で一致する引数の配列。
args
が空の配列または null
の場合、パラメーターを受け取っていないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。
- culture
- CultureInfo
typeName
コンストラクター用に宣言された正式な型への args
の強制を制御するカルチャ固有の情報。
culture
が null
されている場合は、現在のスレッドの CultureInfo が使用されます。
- activationAttributes
- Object[]
アクティブ化に参加できる 1 つ以上の属性の配列。 これは通常、リモート オブジェクトのアクティブ化に必要な URL を指定する単一の UrlAttribute オブジェクトを含む配列です。
このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。
戻り値
新しく作成されたインスタンスにアクセスするためにラップ解除する必要があるハンドル。値のない Nullable<T> インスタンスの場合は null
。
例外
typeName
は null
です。
一致するコンストラクターが見つかりませんでした。
typeName
が assemblyName
で見つかりませんでした。
assemblyName
が見つかりませんでした。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。
リフレクションを介して呼び出されたコンストラクターが例外をスローしました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
activationAttributes
は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。
-又は-
args
に最も一致するコンストラクターには、varargs
引数があります。
assemblyName
は有効なアセンブリではありません。
-又は-
現在、共通言語ランタイム (CLR) バージョン 2.0 以降が読み込まれており、assemblyName
は、現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされています。 .NET Framework バージョン 2.0、3.0、および 3.5 はすべて CLR バージョン 2.0 を使用します。
注釈
戻り値のラップを解除するには、ObjectHandle.Unwrap を使用します。
手記
.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元が ReflectionPermissionFlag.RestrictedMemberAccess フラグを持つ ReflectionPermission を許可されている場合、および非パブリック型とメンバーを含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合に、非パブリック型とメンバーを作成できます。 (リフレクション
適用対象
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
コンストラクターをシークして識別するオブジェクト。
binder
が null
されている場合は、既定のバインダーが使用されます。
- args
- Object[]
呼び出すコンストラクターのパラメーターを数値、順序、および型で一致する引数の配列。
args
が空の配列または null
の場合、パラメーターを受け取っていないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。
- culture
- CultureInfo
type
コンストラクター用に宣言された正式な型への args
の強制を制御するカルチャ固有の情報。
culture
が null
されている場合は、現在のスレッドの CultureInfo が使用されます。
- activationAttributes
- Object[]
アクティブ化に参加できる 1 つ以上の属性の配列。 これは通常、リモート オブジェクトのアクティブ化に必要な URL を指定する単一の UrlAttribute オブジェクトを含む配列です。
このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。
戻り値
新しく作成されたオブジェクトへの参照、または値のない Nullable<T> インスタンスの null
。
例外
type
は null
です。
type
は RuntimeType
ではありません。
-又は-
type
はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true
を返します)。
type
を TypeBuilderにすることはできません。
-又は-
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
activationAttributes
は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。
-又は-
type
を含むアセンブリは、Saveで作成された動的アセンブリです。
-又は-
args
に最も一致するコンストラクターには、varargs
引数があります。
呼び出されるコンストラクターは例外をスローします。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
一致するコンストラクターが見つかりませんでした。
type
は COM オブジェクトですが、型の取得に使用されるクラス識別子が無効であるか、識別されたクラスが登録されていません。
type
は有効な型ではありません。
注釈
呼び出されるコンストラクターは、指定されたバインダー属性とバインド属性の制約の下で、指定された引数リストとの最も具体的な一致を提供する必要があります。
手記
.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元が ReflectionPermissionFlag.RestrictedMemberAccess フラグを使用して ReflectionPermission を許可されている場合、および非パブリック型とメンバーの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合に、非パブリック型とメンバーにアクセスできます。 (リフレクション
適用対象
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
bindingAttr
と args
を使用して、type
コンストラクターをシークして識別するオブジェクト。
binder
が null
されている場合は、既定のバインダーが使用されます。
- args
- Object[]
呼び出すコンストラクターのパラメーターを数値、順序、および型で一致する引数の配列。
args
が空の配列または null
の場合、パラメーターを受け取っていないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。
- culture
- CultureInfo
type
コンストラクター用に宣言された正式な型への args
の強制を制御するカルチャ固有の情報。
culture
が null
されている場合は、現在のスレッドの CultureInfo が使用されます。
戻り値
新しく作成されたオブジェクトへの参照、または値のない Nullable<T> インスタンスの null
。
例外
type
は null
です。
type
は RuntimeType
ではありません。
-又は-
type
はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true
を返します)。
type
を TypeBuilderにすることはできません。
-又は-
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
type
を含むアセンブリは、Saveで作成された動的アセンブリです。
-又は-
args
に最も一致するコンストラクターには、varargs
引数があります。
呼び出されるコンストラクターは例外をスローします。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
一致するコンストラクターが見つかりませんでした。
type
は COM オブジェクトですが、型の取得に使用されるクラス識別子が無効であるか、識別されたクラスが登録されていません。
type
は有効な型ではありません。
注釈
呼び出されるコンストラクターは、指定されたバインダー属性とバインド属性の制約の下で、指定された引数リストとの最も具体的な一致を提供する必要があります。
手記
.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元に ReflectionPermissionFlag.RestrictedMemberAccess フラグを持つ ReflectionPermission が呼び出し元に付与されている場合、および非パブリック型とメンバーを含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合に、非パブリック型とメンバーにアクセスできます。 (リフレクション
適用対象
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
。
例外
type
は null
です。
type
は RuntimeType
ではありません。
-又は-
type
はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true
を返します)。
type
を TypeBuilderにすることはできません。
-又は-
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
activationAttributes
は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。
-又は-
type
を含むアセンブリは、Saveで作成された動的アセンブリです。
-又は-
args
に最も一致するコンストラクターには、varargs
引数があります。
呼び出されるコンストラクターは例外をスローします。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
一致するパブリック コンストラクターが見つかりませんでした。
type
は COM オブジェクトですが、型の取得に使用されるクラス識別子が無効であるか、識別されたクラスが登録されていません。
type
は有効な型ではありません。
注釈
呼び出されるコンストラクターはアクセス可能であり、指定された引数リストとの最も具体的な一致を提供する必要があります。
手記
.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元が ReflectionPermissionFlag.RestrictedMemberAccess フラグを持つ ReflectionPermission を許可されている場合、および非パブリック型を含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合は、非パブリック型にアクセスできます。 (リフレクション
適用対象
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
という名前の型が検索されるアセンブリの名前。
assemblyName
が null
されている場合は、実行中のアセンブリが検索されます。
- typeName
- String
インスタンスを作成する型の完全修飾名。
- activationAttributes
- Object[]
アクティブ化に参加できる 1 つ以上の属性の配列。 これは通常、リモート オブジェクトのアクティブ化に必要な URL を指定する単一の UrlAttribute オブジェクトを含む配列です。
このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。
戻り値
新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル、または Nullable<T> インスタンスの null
。
例外
typeName
は null
です。
一致するパブリック コンストラクターが見つかりませんでした。
typeName
が assemblyName
で見つかりませんでした。
assemblyName
が見つかりませんでした。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
activationAttributes
は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。
-又は-
activationAttributes
は UrlAttribute ではありません
配列。
assemblyName
は有効なアセンブリではありません。
-又は-
現在、共通言語ランタイム (CLR) バージョン 2.0 以降が読み込まれており、assemblyName
は、現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされています。 .NET Framework バージョン 2.0、3.0、および 3.5 はすべて CLR バージョン 2.0 を使用します。
呼び出されたコンストラクターは例外をスローします。
-又は-
activationAttributes
で指定されたターゲットでリモート アクティブ化を試みたときにエラーが発生しました。
注釈
戻り値のラップを解除するには、ObjectHandle.Unwrap を使用します。
手記
.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元が ReflectionPermissionFlag.RestrictedMemberAccess フラグを持つ ReflectionPermission を許可されている場合、および非パブリック型の許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合に、非パブリック型を作成できます。 (リフレクション
適用対象
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
という名前の型が検索されるアセンブリの名前。
assemblyName
が null
されている場合は、実行中のアセンブリが検索されます。
- typeName
- String
インスタンスを作成する型の完全修飾名。
- ignoreCase
- Boolean
typeName
の検索で大文字と小文字が区別されないように指定 true
。検索で大文字と小文字が区別されることを指定 false
。
- bindingAttr
- BindingFlags
typeName
コンストラクターの検索に影響する 0 個以上のビット フラグの組み合わせ。
bindingAttr
が 0 の場合、パブリック コンストラクターの大文字と小文字が区別される検索が実行されます。
- binder
- Binder
bindingAttr
と args
を使用して、typeName
コンストラクターをシークして識別するオブジェクト。
binder
が null
されている場合は、既定のバインダーが使用されます。
- args
- Object[]
呼び出すコンストラクターのパラメーターを数値、順序、および型で一致する引数の配列。
args
が空の配列または null
の場合、パラメーターを受け取っていないコンストラクター (パラメーターなしのコンストラクター) が呼び出されます。
- culture
- CultureInfo
typeName
コンストラクター用に宣言された正式な型への args
の強制を制御するカルチャ固有の情報。
culture
が null
されている場合は、現在のスレッドの CultureInfo が使用されます。
- activationAttributes
- Object[]
アクティブ化に参加できる 1 つ以上の属性の配列。 これは通常、リモート オブジェクトのアクティブ化に必要な URL を指定する単一の UrlAttribute オブジェクトを含む配列です。
このパラメーターは、クライアントによってアクティブ化されたオブジェクトに関連しています。 クライアントのアクティブ化は、旧バージョンとの互換性のために保持されるレガシ テクノロジですが、新しい開発には推奨されません。 分散アプリケーションでは、代わりに Windows Communication Foundation を使用する必要があります。
- securityInfo
- Evidence
セキュリティ ポリシーの決定を行い、コードのアクセス許可を付与するために使用される情報。
戻り値
新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル。値のない Nullable<T> インスタンスの場合は null
。
- 属性
例外
typeName
は null
です。
一致するコンストラクターが見つかりませんでした。
typeName
が assemblyName
で見つかりませんでした。
assemblyName
が見つかりませんでした。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。
リフレクションを介して呼び出されたコンストラクターが例外をスローしました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
activationAttributes
は空の配列ではなく、作成される型は MarshalByRefObjectから派生しません。
-又は-
args
に最も一致するコンストラクターには、varargs
引数があります。
assemblyName
は有効なアセンブリではありません。
-又は-
現在、共通言語ランタイム (CLR) バージョン 2.0 以降が読み込まれており、assemblyName
は、現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされています。 .NET Framework バージョン 2.0、3.0、および 3.5 はすべて CLR バージョン 2.0 を使用します。
注釈
戻り値のラップを解除するには、ObjectHandle.Unwrap を使用します。
手記
.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元が ReflectionPermissionFlag.RestrictedMemberAccess フラグを持つ ReflectionPermission を許可されている場合、および非パブリック型とメンバーを含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合に、非パブリック型とメンバーを作成できます。 (リフレクション
適用対象
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
。
例外
type
は null
です。
type
は RuntimeType
ではありません。
-又は-
type
はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true
を返します)。
type
を TypeBuilderにすることはできません。
-又は-
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
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 を許可されている場合、および非パブリック型を含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合は、非パブリック型にアクセスできます。 (リフレクション
適用対象
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
します。
戻り値
新しく作成されたオブジェクトへの参照、または Nullable<T> インスタンスの null
。
例外
type
は null
です。
type
は RuntimeType
ではありません。
-又は-
type
はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true
を返します)。
type
を TypeBuilderにすることはできません。
-又は-
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
type
を含むアセンブリは、Saveで作成された動的アセンブリです。
呼び出されるコンストラクターは例外をスローします。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
一致するパブリック コンストラクターが見つかりませんでした。
type
は COM オブジェクトですが、型の取得に使用されるクラス識別子が無効であるか、識別されたクラスが登録されていません。
type
は有効な型ではありません。
注釈
手記
.NET Framework 2.0 以降では、このメソッドを使用して、呼び出し元に ReflectionPermissionFlag.RestrictedMemberAccess フラグを持つ ReflectionPermission が呼び出し元に付与されている場合、および非パブリック型とメンバーを含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合に、非パブリック型とメンバーにアクセスできます。 (リフレクション
適用対象
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
という名前の型が検索されるアセンブリの名前。
assemblyName
が null
されている場合は、実行中のアセンブリが検索されます。
- typeName
- String
インスタンスを作成する型の完全修飾名。
戻り値
新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル、または Nullable<T> インスタンスの null
。
例外
typeName
は null
です。
一致するパブリック コンストラクターが見つかりませんでした。
typeName
が assemblyName
で見つかりませんでした。
assemblyName
が見つかりませんでした。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
抽象クラスのインスタンスを作成できないか、遅延バインディング メカニズムを使用してこのメンバーが呼び出されました。
リフレクションを介して呼び出されたコンストラクターが例外をスローしました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
assemblyName
は有効なアセンブリではありません。
-又は-
現在、共通言語ランタイム (CLR) バージョン 2.0 以降が読み込まれており、assemblyName
は、現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされています。 .NET Framework バージョン 2.0、3.0、および 3.5 はすべて CLR バージョン 2.0 を使用します。
例
次の例では、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 を許可されている場合、および非パブリック型を含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合に、非パブリック型を作成できます。 (リフレクション
適用対象
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
。
例外
type
は null
です。
type
は RuntimeType
ではありません。
-又は-
type
はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true
を返します)。
type
を TypeBuilderにすることはできません。
-又は-
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
-又は-
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 を許可されている場合、および非パブリック型を含むアセンブリの許可セットが呼び出し元の許可セットまたはそのサブセットに制限されている場合は、非パブリック型にアクセスできます。 (リフレクション
適用対象
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
という名前の型が検索されるアセンブリの名前。
assemblyName
が null
されている場合は、実行中のアセンブリが検索されます。
- typeName
- String
インスタンスを作成する型の完全修飾名。
戻り値
新しく作成されたオブジェクトにアクセスするためにラップ解除する必要があるハンドル、または Nullable<T> インスタンスの null
。
- 属性
例外
typeName
または domain
が null
。
一致するパブリック コンストラクターが見つかりませんでした。
typeName
が assemblyName
で見つかりませんでした。
assemblyName
が見つかりませんでした。
呼び出し元には、このコンストラクターを呼び出すアクセス許可がありません。
リフレクションを介して呼び出されたコンストラクターが例外をスローしました。
COM 型は、GetTypeFromProgID または GetTypeFromCLSIDによって取得されませんでした。
TypedReference、ArgIterator、Void、RuntimeArgumentHandle 型、またはそれらの型の配列の作成はサポートされていません。
assemblyName
は有効なアセンブリではありません。
-又は-
現在、共通言語ランタイム (CLR) バージョン 2.0 以降が読み込まれており、assemblyName
は、現在読み込まれているバージョンより新しいバージョンの CLR 用にコンパイルされています。 .NET Framework バージョン 2.0、3.0、および 3.5 はすべて CLR バージョン 2.0 を使用します。
注釈
セキュリティアクセス許可が制限されているアプリケーション ドメインでホストがコードを実行する必要がある場合は、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
作成する型。
戻り値
新しく作成されたオブジェクトへの参照、または 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>() ジェネリック メソッドのオーバーロードはありません。
適用対象
.NET