AppDomain.CreateInstanceFrom メソッド

定義

指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。Creates a new instance of a specified type defined in the specified assembly file.

オーバーロード

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

指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。Creates a new instance of the specified type defined in the specified assembly file.

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

指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。Creates a new instance of the specified type defined in the specified assembly file.

CreateInstanceFrom(String, String, Object[])

指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。Creates a new instance of the specified type defined in the specified assembly file.

CreateInstanceFrom(String, String)

指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。Creates a new instance of the specified type defined in the specified assembly file.

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

警告

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

指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。Creates a new instance of the specified type defined in the specified assembly file.

public:
 System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityAttributes);
[System.Obsolete("Use an overload that does not take an Evidence parameter")]
[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 CreateInstanceFrom which does not take an Evidence parameter. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, 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);
member this.CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle

パラメーター

assemblyFile
String

要求する型を定義しているアセンブリが格納されているファイルの名前 (パスを含む)。The name, including the path, of a file that contains an assembly that defines the requested type. アセンブリは LoadFrom(String) メソッドを使用して読み込まれます。The assembly is loaded using the LoadFrom(String) method.

typeName
String

要求する型の完全修飾名。アセンブリは指定せずに、名前空間だけを指定します。この名前は、FullName プロパティによって返されます。The fully qualified name of the requested type, including the namespace but not the assembly, as returned by the FullName property.

ignoreCase
Boolean

検索で大文字と小文字を区別するかどうかを指定する Boolean 値。A Boolean value specifying whether to perform a case-sensitive search or not.

bindingAttr
BindingFlags

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

binder
Binder

バインディング、引数型の強制変換、メンバーの呼び出し、およびリフレクションを使用した MemberInfo オブジェクトの取得を有効にするオブジェクト。An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects through reflection. binder が null の場合は、既定のバインダーが使用されます。If binder is null, the default binder is used.

args
Object[]

コンストラクターに渡される引数。The arguments to pass to the constructor. この引数の配列は、呼び出すコンストラクターのパラメーターに対して、数、順序、および型を一致させる必要があります。This array of arguments must match in number, order, and type the parameters of the constructor to invoke. パラメーターなしのコンストラクターを使用する場合は、args を空の配列または null にする必要があります。If the parameterless constructor is preferred, args must be an empty array or null.

culture
CultureInfo

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

activationAttributes
Object[]

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

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

securityAttributes
Evidence

typeName の作成を承認するために使用される情報。Information used to authorize creation of typeName.

戻り値

新しいインスタンスのラッパーであるオブジェクト。typeName が見つからない場合は nullAn object that is a wrapper for the new instance, or null if typeName is not found. 実際のオブジェクトにアクセスするには、戻り値のラップを解除する必要があります。The return value needs to be unwrapped to access the real object.

実装

属性

例外

assemblyFilenull です。assemblyFile is null.

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

呼び出し元は、MarshalByRefObject を継承しないオブジェクトのアクティベーション属性を提供できません。The caller cannot provide activation attributes for an object that does not inherit from MarshalByRefObject.

- または --or- securityAttributesnull ではありません。securityAttributes is not null. レガシ CAS ポリシーが有効でない場合は、securityAttributesnull にする必要があります。When legacy CAS policy is not enabled, securityAttributes should be null.

アンロードされたアプリケーション ドメインで操作しようとします。The operation is attempted on an unloaded application domain.

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

typeNameassemblyFile に見つかりませんでした。typeName was not found in assemblyFile.

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

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

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

- または --or- 共通言語ランタイムのバージョン 2.0 以降が現在読み込まれています。assemblyFile は、より新しいバージョンでコンパイルされています。Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

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

このインスタンスは null です。This instance is null.

注釈

このメソッドの詳細については、Activator.CreateInstanceFrom メソッドを参照してください。For more information about this method, see the Activator.CreateInstanceFrom method.

CreateInstanceFrom メソッドを使用して、呼び出し元のアプリケーションドメイン以外のターゲットアプリケーションドメインにインスタンスを作成すると、アセンブリはターゲットアプリケーションドメインに読み込まれます。When the CreateInstanceFrom method is used to create an instance in a target application domain, other than the application domain from which the call is made, the assembly is loaded in the target application domain. ただし、呼び出し元のアプリケーションドメインでインスタンスがラップ解除されている場合は、ラップされていないインスタンスを特定の方法で使用すると、アセンブリが呼び出し元のアプリケーションドメインに読み込まれる可能性があります。However, if the instance is unwrapped in the calling application domain, using the unwrapped instance in certain ways can cause the assembly to be loaded into the calling application domain. たとえば、インスタンスがラップ解除された後に、遅延バインディングされたメソッドを呼び出すために、その型情報が要求される場合があります。For example, after the instance is unwrapped, its type information might be requested, in order to call its methods late-bound. アセンブリが呼び出し元のアプリケーションドメインに読み込まれると、例外が発生する可能性があります。When the assembly is loaded into the calling application domain, exceptions can occur.

  • 同じアセンブリの別のバージョンが以前に呼び出し元のアプリケーションドメインに読み込まれていた場合、または呼び出し元のアプリケーションドメインの読み込みパスがターゲットアプリケーションドメインのものと異なる場合は、MissingMethodException などの例外が発生する可能性があります。If another version of the same assembly was previously loaded into the calling application domain, or if the load path of the calling application domain is different from that of the target application domain, exceptions such as MissingMethodException can occur.

  • 呼び出し元のアプリケーションドメインがインスタンス型への事前バインディング呼び出しを行う場合、インスタンスをキャストしようとしたときに InvalidCastException がスローされる可能性があります。If the calling application domain makes early-bound calls to the instance type, InvalidCastException can be thrown when an attempt is made to cast the instance.

セキュリティ

FileIOPermissionAccess
アセンブリマニフェストを含むファイルを読み取る機能。for the ability to read the file containing the assembly manifest. 関連付けられた列挙型: ReadAssociated enumeration: Read

WebPermission
アセンブリがローカルでない場合に、アセンブリの場所にアクセスする権限。for the ability to access the location of the assembly if the assembly is not local.

SecurityPermission
証拠を提供します。to provide evidence. ControlEvidence (関連する列挙体)Associated enumeration: ControlEvidence.

こちらもご覧ください

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

指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。Creates a new instance of the specified type defined in the specified assembly file.

public:
 System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, 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 System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
member this.CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle

パラメーター

assemblyFile
String

要求する型を定義しているアセンブリが格納されているファイルの名前 (パスを含む)。The name, including the path, of a file that contains an assembly that defines the requested type. アセンブリは LoadFrom(String) メソッドを使用して読み込まれます。The assembly is loaded using the LoadFrom(String) method.

typeName
String

要求する型の完全修飾名。アセンブリは指定せずに、名前空間だけを指定します。この名前は、FullName プロパティによって返されます。The fully qualified name of the requested type, including the namespace but not the assembly, as returned by the FullName property.

ignoreCase
Boolean

検索で大文字と小文字を区別するかどうかを指定する Boolean 値。A Boolean value specifying whether to perform a case-sensitive search or not.

bindingAttr
BindingFlags

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

binder
Binder

バインディング、引数型の強制変換、メンバーの呼び出し、およびリフレクションを使用した MemberInfo オブジェクトの取得を有効にするオブジェクト。An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects through reflection. binder が null の場合は、既定のバインダーが使用されます。If binder is null, the default binder is used.

args
Object[]

コンストラクターに渡される引数。The arguments to pass to the constructor. この引数の配列は、呼び出すコンストラクターのパラメーターに対して、数、順序、および型を一致させる必要があります。This array of arguments must match in number, order, and type the parameters of the constructor to invoke. パラメーターなしのコンストラクターを使用する場合は、args を空の配列または null にする必要があります。If the parameterless constructor is preferred, args must be an empty array or null.

culture
CultureInfo

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

activationAttributes
Object[]

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

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

戻り値

新しいインスタンスのラッパーであるオブジェクト。typeName が見つからない場合は nullAn object that is a wrapper for the new instance, or null if typeName is not found. 実際のオブジェクトにアクセスするには、戻り値のラップを解除する必要があります。The return value needs to be unwrapped to access the real object.

例外

assemblyFilenull です。assemblyFile is null.

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

呼び出し元は、MarshalByRefObject を継承しないオブジェクトのアクティベーション属性を提供できません。The caller cannot provide activation attributes for an object that does not inherit from MarshalByRefObject.

アンロードされたアプリケーション ドメインで操作しようとします。The operation is attempted on an unloaded application domain.

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

typeNameassemblyFile に見つかりませんでした。typeName was not found in assemblyFile.

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

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

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

- または --or- 現在読み込まれているバージョンよりも新しいバージョンの共通言語ランタイムで、assemblyFile がコンパイルされました。assemblyFile was compiled with a later version of the common language runtime than the version that is currently loaded.

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

このインスタンスは null です。This instance is null.

注釈

詳細については、Activator.CreateInstanceFrom メソッドを参照してください。For more information, see the Activator.CreateInstanceFrom method.

CreateInstanceFrom メソッドを使用して、呼び出し元のアプリケーションドメイン以外のターゲットアプリケーションドメインにインスタンスを作成すると、アセンブリはターゲットアプリケーションドメインに読み込まれます。When the CreateInstanceFrom method is used to create an instance in a target application domain, other than the application domain from which the call is made, the assembly is loaded in the target application domain. ただし、呼び出し元のアプリケーションドメインでインスタンスがラップ解除されている場合は、ラップされていないインスタンスを特定の方法で使用すると、アセンブリが呼び出し元のアプリケーションドメインに読み込まれる可能性があります。However, if the instance is unwrapped in the calling application domain, using the unwrapped instance in certain ways can cause the assembly to be loaded into the calling application domain. たとえば、インスタンスがラップ解除された後に、遅延バインディングされたメソッドを呼び出すために、その型情報が要求される場合があります。For example, after the instance is unwrapped, its type information might be requested, in order to call its methods late-bound. アセンブリが呼び出し元のアプリケーションドメインに読み込まれると、例外が発生する可能性があります。When the assembly is loaded into the calling application domain, exceptions can occur.

  • 同じアセンブリの別のバージョンが以前に呼び出し元のアプリケーションドメインに読み込まれていた場合、または呼び出し元のアプリケーションドメインの読み込みパスがターゲットアプリケーションドメインのものと異なる場合は、MissingMethodException などの例外が発生する可能性があります。If another version of the same assembly was previously loaded into the calling application domain, or if the load path of the calling application domain is different from that of the target application domain, exceptions such as MissingMethodException can occur.

  • 呼び出し元のアプリケーションドメインがインスタンス型への事前バインディング呼び出しを行う場合、インスタンスをキャストしようとしたときに InvalidCastException がスローされる可能性があります。If the calling application domain makes early-bound calls to the instance type, InvalidCastException can be thrown when an attempt is made to cast the instance.

セキュリティ

FileIOPermissionAccess
アセンブリマニフェストを含むファイルを読み取る機能。for the ability to read the file containing the assembly manifest. 関連付けられた列挙型: ReadAssociated enumeration: Read

WebPermission
アセンブリがローカルでない場合に、アセンブリの場所にアクセスする権限。for the ability to access the location of the assembly if the assembly is not local.

こちらもご覧ください

CreateInstanceFrom(String, String, Object[])

指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。Creates a new instance of the specified type defined in the specified assembly file.

public:
 virtual System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, object[] activationAttributes);
abstract member CreateInstanceFrom : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstanceFrom : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstanceFrom (assemblyFile As String, typeName As String, activationAttributes As Object()) As ObjectHandle

パラメーター

assemblyFile
String

要求する型を定義しているアセンブリが格納されているファイルの名前 (パスを含む)。The name, including the path, of a file that contains an assembly that defines the requested type. アセンブリは LoadFrom(String) メソッドを使用して読み込まれます。The assembly is loaded using the LoadFrom(String) method.

typeName
String

要求する型の完全修飾名。アセンブリは指定せずに、名前空間だけを指定します。この名前は、FullName プロパティによって返されます。The fully qualified name of the requested type, including the namespace but not the assembly, as returned by the FullName property.

activationAttributes
Object[]

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

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

戻り値

新しいインスタンスのラッパーであるオブジェクト。typeName が見つからない場合は nullAn object that is a wrapper for the new instance, or null if typeName is not found. 実際のオブジェクトにアクセスするには、戻り値のラップを解除する必要があります。The return value needs to be unwrapped to access the real object.

実装

例外

assemblyFilenull です。assemblyFile is null.

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

typeNameassemblyFile に見つかりませんでした。typeName was not found in assemblyFile.

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

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

呼び出し元は、MarshalByRefObject を継承しないオブジェクトのアクティベーション属性を提供できません。The caller cannot provide activation attributes for an object that does not inherit from MarshalByRefObject.

アンロードされたアプリケーション ドメインで操作しようとします。The operation is attempted on an unloaded application domain.

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

- または --or- 共通言語ランタイムのバージョン 2.0 以降が現在読み込まれています。assemblyFile は、より新しいバージョンでコンパイルされています。Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

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

このインスタンスは null です。This instance is null.

注釈

typeName のパラメーターなしのコンストラクターが呼び出されます。The parameterless constructor for typeName is invoked.

このメソッドの詳細については、Activator.CreateInstanceFrom メソッドを参照してください。For more information about this method, see the Activator.CreateInstanceFrom method.

CreateInstanceFrom メソッドを使用して、呼び出し元のアプリケーションドメイン以外のターゲットアプリケーションドメインにインスタンスを作成すると、アセンブリはターゲットアプリケーションドメインに読み込まれます。When the CreateInstanceFrom method is used to create an instance in a target application domain, other than the application domain from which the call is made, the assembly is loaded in the target application domain. ただし、呼び出し元のアプリケーションドメインでインスタンスがラップ解除されている場合は、ラップされていないインスタンスを特定の方法で使用すると、アセンブリが呼び出し元のアプリケーションドメインに読み込まれる可能性があります。However, if the instance is unwrapped in the calling application domain, using the unwrapped instance in certain ways can cause the assembly to be loaded into the calling application domain. たとえば、インスタンスがラップ解除された後に、遅延バインディングされたメソッドを呼び出すために、その型情報が要求される場合があります。For example, after the instance is unwrapped, its type information might be requested, in order to call its methods late-bound. アセンブリが呼び出し元のアプリケーションドメインに読み込まれると、例外が発生する可能性があります。When the assembly is loaded into the calling application domain, exceptions can occur.

  • 同じアセンブリの別のバージョンが以前に呼び出し元のアプリケーションドメインに読み込まれていた場合、または呼び出し元のアプリケーションドメインの読み込みパスがターゲットアプリケーションドメインのものと異なる場合は、MissingMethodException などの例外が発生する可能性があります。If another version of the same assembly was previously loaded into the calling application domain, or if the load path of the calling application domain is different from that of the target application domain, exceptions such as MissingMethodException can occur.

  • 呼び出し元のアプリケーションドメインがインスタンス型への事前バインディング呼び出しを行う場合、インスタンスをキャストしようとしたときに InvalidCastException がスローされる可能性があります。If the calling application domain makes early-bound calls to the instance type, InvalidCastException can be thrown when an attempt is made to cast the instance.

セキュリティ

FileIOPermissionAccess
アセンブリマニフェストを含むファイルを読み取る機能。for the ability to read the file containing the assembly manifest. 関連付けられた列挙型: ReadAssociated enumeration: Read

WebPermission
アセンブリがローカルでない場合に、アセンブリの場所にアクセスする権限。for the ability to access the location of the assembly if the assembly is not local.

こちらもご覧ください

CreateInstanceFrom(String, String)

指定したアセンブリ ファイルで定義されている、指定した型の新しいインスタンスを作成します。Creates a new instance of the specified type defined in the specified assembly file.

public:
 virtual System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName);
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName);
abstract member CreateInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstanceFrom (assemblyFile As String, typeName As String) As ObjectHandle

パラメーター

assemblyFile
String

要求する型を定義しているアセンブリが格納されているファイルの名前 (パスを含む)。The name, including the path, of a file that contains an assembly that defines the requested type. アセンブリは LoadFrom(String) メソッドを使用して読み込まれます。The assembly is loaded using the LoadFrom(String) method.

typeName
String

要求する型の完全修飾名。アセンブリは指定せずに、名前空間だけを指定します。この名前は、FullName プロパティによって返されます。The fully qualified name of the requested type, including the namespace but not the assembly, as returned by the FullName property.

戻り値

新しいインスタンスのラッパーであるオブジェクト。typeName が見つからない場合は nullAn object that is a wrapper for the new instance, or null if typeName is not found. 実際のオブジェクトにアクセスするには、戻り値のラップを解除する必要があります。The return value needs to be unwrapped to access the real object.

実装

例外

assemblyFilenull です。assemblyFile is null.

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

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

typeNameassemblyFile に見つかりませんでした。typeName was not found in assemblyFile.

アンロードされたアプリケーション ドメインで操作しようとします。The operation is attempted on an unloaded application domain.

パラメーターなしのパブリック コンストラクターが見つかりませんでした。No parameterless public constructor was found.

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

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

- または --or- 共通言語ランタイムのバージョン 2.0 以降が現在読み込まれています。assemblyFile は、より新しいバージョンでコンパイルされています。Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

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

このインスタンスは null です。This instance is null.

次の例は、CreateInstanceFrom(String, String) メソッドオーバーロードを使用して、ターゲットアプリケーションドメインにオブジェクトのインスタンスを作成し、そのメソッドを呼び出す方法を示しています。The following example shows how to use the CreateInstanceFrom(String, String) method overload to create an instance of an object in a target application domain and call its methods.

この例では MarshalableExample クラスを定義しています。これは、アプリケーションドメインの境界を越えてマーシャリングできます。The example defines the MarshalableExample class, which can be marshaled across application domain boundaries. この例では、現在実行中のアセンブリへのパスを構築し、ターゲットアプリケーションドメインを作成し、CreateInstanceFrom(String, String) メソッドオーバーロードを使用して、ターゲットアプリケーションドメインにサンプルアセンブリを読み込み、MarshalableExampleのインスタンスを作成します。The example builds a path to the currently executing assembly, creates a target application domain, and uses the CreateInstanceFrom(String, String) method overload to load the example assembly into the target application domain and create an instance of MarshalableExample.

注意

この例ではパスは absolute ですが、Assembly.LoadFrom メソッドを使用してアセンブリを読み込むため、相対パスも機能します。The path is absolute in this example, but a relative path would also work because the Assembly.LoadFrom method is used to load the assembly.

オブジェクトハンドルのラップを解除した後の例では、ターゲットアプリケーションドメインでオブジェクトを使用する3つの方法を示しています。After unwrapping the object handle, the example demonstrates three ways to use an object in a target application domain:

  • リフレクションを使用した遅延バインディングを使用したメソッドの呼び出し。Invoking a method with late binding, using reflection. これには型情報が必要です。これにより、アセンブリが呼び出し元のアプリケーションドメインに読み込まれます。This requires type information, which causes the assembly to be loaded into the application domain of the caller. (この例では、既に読み込まれています)。(In this example, it is already loaded.)

  • 呼び出し元と呼び出し先の両方に認識されるインターフェイスにオブジェクトをキャストします。Casting the object to an interface known to both the caller and the callee. インターフェイスが呼び出し元のアセンブリまたは呼び出し元と呼び出し先の両方によって参照される3番目のアセンブリで定義されている場合、呼び出されたアセンブリは呼び出し元のアプリケーションドメインに読み込まれません。If the interface is defined in the calling assembly or in a third assembly referenced by both the caller and the callee, the called assembly is not loaded into the application domain of the caller.

  • オブジェクトの型が呼び出し元に認識されている場合に、オブジェクトを直接使用します。Using the object directly when its type is known to the caller. アセンブリは、呼び出し元のアプリケーションドメインに読み込む必要があります。The assembly must be loaded into the application domain of the caller.

呼び出されたアセンブリが呼び出し元のアプリケーションドメインに読み込まれないようにするもう1つの方法は、呼び出し元が MarshalByRefObject クラスから派生し、ターゲットアプリケーションドメインで実行できるメソッドを定義することです。Another way to avoid loading the called assembly into the application domain of the caller is for the caller to derive from the MarshalByRefObject class and to define a method that can be run in the target application domain. ターゲットアセンブリはターゲットアプリケーションドメインに既に読み込まれているため、このメソッドはリフレクションを使用してターゲットアセンブリを調べることができます。That method can use reflection to examine a target assembly, because the target assembly is already loaded into the target application domain. DynamicDirectory プロパティの例を参照してください。See the example for the DynamicDirectory property.

using namespace System;

public interface class ITest
{
    void Test(String^ greeting);
};

public ref class MarshalableExample : MarshalByRefObject, ITest
{
public:
    virtual void Test(String^ greeting)
    {
        Console::WriteLine("{0} from '{1}'!", greeting,
            AppDomain::CurrentDomain->FriendlyName);
    }
};

void main()
{
    // Construct a path to the current assembly.
    String^ assemblyPath = Environment::CurrentDirectory + "\\" +
        MarshalableExample::typeid->Assembly->GetName()->Name + ".exe";

    AppDomain^ ad = AppDomain::CreateDomain("MyDomain");
 
    System::Runtime::Remoting::ObjectHandle^ oh = 
        ad->CreateInstanceFrom(assemblyPath, "MarshalableExample");

    Object^ obj = oh->Unwrap();


    // Three ways to use the newly created object, depending on how
    // much is known about the type: Late bound, early bound through 
    // a mutually known interface, or early binding of a known type.
    //
    obj->GetType()->InvokeMember("Test", 
        System::Reflection::BindingFlags::InvokeMethod, 
        Type::DefaultBinder, obj, gcnew array<Object^> { "Hello" });

    ITest^ it = (ITest^) obj;
    it->Test("Hi");

    MarshalableExample^ ex = (MarshalableExample^) obj;
    ex->Test("Goodbye");
}

/* This example produces the following output:

Hello from 'MyDomain'!
Hi from 'MyDomain'!
Goodbye from 'MyDomain'!
 */
using System;

public interface ITest
{
    void Test(string greeting);
}

public class MarshalableExample : MarshalByRefObject, ITest
{
    static void Main()
    {
        // Construct a path to the current assembly.
        string assemblyPath = Environment.CurrentDirectory + "\\" +
            typeof(MarshalableExample).Assembly.GetName().Name + ".exe";

        AppDomain ad = AppDomain.CreateDomain("MyDomain");
 
        System.Runtime.Remoting.ObjectHandle oh = 
            ad.CreateInstanceFrom(assemblyPath, "MarshalableExample");

        object obj = oh.Unwrap();


        // Three ways to use the newly created object, depending on how
        // much is known about the type: Late bound, early bound through 
        // a mutually known interface, or early binding of a known type.
        //
        obj.GetType().InvokeMember("Test", 
            System.Reflection.BindingFlags.InvokeMethod, 
            Type.DefaultBinder, obj, new object[] { "Hello" });

        ITest it = (ITest) obj;
        it.Test("Hi");

        MarshalableExample ex = (MarshalableExample) obj;
        ex.Test("Goodbye");
    }

    public void Test(string greeting)
    {
        Console.WriteLine("{0} from '{1}'!", greeting,
            AppDomain.CurrentDomain.FriendlyName);
    }
}

/* This example produces the following output:

Hello from 'MyDomain'!
Hi from 'MyDomain'!
Goodbye from 'MyDomain'!
 */
Public Interface ITest

    Sub Test(ByVal greeting As String)
End Interface

Public Class MarshalableExample 
    Inherits MarshalByRefObject
    Implements ITest

    Shared Sub Main()
    
        ' Construct a path to the current assembly.
        Dim assemblyPath As String = Environment.CurrentDirectory & "\" &
            GetType(MarshalableExample).Assembly.GetName().Name & ".exe"

        Dim ad As AppDomain = AppDomain.CreateDomain("MyDomain")
 
        Dim oh As System.Runtime.Remoting.ObjectHandle = 
            ad.CreateInstanceFrom(assemblyPath, "MarshalableExample")

        Dim obj As Object = oh.Unwrap()


        ' Three ways to use the newly created object, depending on how
        ' much is known about the type: Late bound, early bound through 
        ' a mutually known interface, or early binding of a known type.
        '
        obj.GetType().InvokeMember("Test", 
            System.Reflection.BindingFlags.InvokeMethod, 
            Type.DefaultBinder, obj, New Object() { "Hello" })

        Dim it As ITest = CType(obj, ITest) 
        it.Test("Hi")

        Dim ex As MarshalableExample = CType(obj, MarshalableExample) 
        ex.Test("Goodbye")
    End Sub

    Public Sub Test(ByVal greeting As String) Implements ITest.Test
    
        Console.WriteLine("{0} from '{1}'!", greeting,
            AppDomain.CurrentDomain.FriendlyName)
    End Sub
End Class

' This example produces the following output:
'
'Hello from 'MyDomain'!
'Hi from 'MyDomain'!
'Goodbye from 'MyDomain'!

注釈

typeName のパラメーターなしのコンストラクターが呼び出されます。The parameterless constructor for typeName is invoked.

詳細については、Activator.CreateInstanceFrom メソッドを参照してください。For more information, see the Activator.CreateInstanceFrom method.

CreateInstanceFrom メソッドを使用して、呼び出し元のアプリケーションドメイン以外のターゲットアプリケーションドメインにインスタンスを作成すると、アセンブリはターゲットアプリケーションドメインに読み込まれます。When the CreateInstanceFrom method is used to create an instance in a target application domain, other than the application domain from which the call is made, the assembly is loaded in the target application domain. ただし、呼び出し元のアプリケーションドメインでインスタンスがラップ解除されている場合は、ラップされていないインスタンスを特定の方法で使用すると、アセンブリが呼び出し元のアプリケーションドメインに読み込まれる可能性があります。However, if the instance is unwrapped in the calling application domain, using the unwrapped instance in certain ways can cause the assembly to be loaded into the calling application domain. たとえば、インスタンスがラップ解除された後に、遅延バインディングされたメソッドを呼び出すために、その型情報が要求される場合があります。For example, after the instance is unwrapped, its type information might be requested, in order to call its methods late-bound. アセンブリが呼び出し元のアプリケーションドメインに読み込まれると、例外が発生する可能性があります。When the assembly is loaded into the calling application domain, exceptions can occur.

  • 同じアセンブリの別のバージョンが以前に呼び出し元のアプリケーションドメインに読み込まれていた場合、または呼び出し元のアプリケーションドメインの読み込みパスがターゲットアプリケーションドメインのものと異なる場合は、MissingMethodException などの例外が発生する可能性があります。If another version of the same assembly was previously loaded into the calling application domain, or if the load path of the calling application domain is different from that of the target application domain, exceptions such as MissingMethodException can occur.

  • 呼び出し元のアプリケーションドメインがインスタンス型への事前バインディング呼び出しを行う場合、インスタンスをキャストしようとしたときに InvalidCastException がスローされる可能性があります。If the calling application domain makes early-bound calls to the instance type, InvalidCastException can be thrown when an attempt is made to cast the instance.

セキュリティ

FileIOPermissionAccess
アセンブリマニフェストを含むファイルを読み取る機能。for the ability to read the file containing the assembly manifest. 関連付けられた列挙型: ReadAssociated enumeration: Read

WebPermission
アセンブリがローカルでない場合に、アセンブリの場所にアクセスする権限。for the ability to access the location of the assembly if the assembly is not local.

こちらもご覧ください

適用対象