AppDomain.CreateInstanceFrom AppDomain.CreateInstanceFrom AppDomain.CreateInstanceFrom AppDomain.CreateInstanceFrom Method

定義

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

オーバーロード

CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 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[]) CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) 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[]) CreateInstanceFrom(String, String, Object[]) CreateInstanceFrom(String, String, Object[]) CreateInstanceFrom(String, String, Object[])

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

CreateInstanceFrom(String, String) CreateInstanceFrom(String, String) CreateInstanceFrom(String, String) 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) CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 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:
 virtual 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 http://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);
abstract member CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
override 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 String String 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 String String 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 Boolean Boolean

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

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

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

binder
Binder Binder Binder Binder

バインディング、引数型の強制変換、メンバーの呼び出し、およびリフレクションを使用した 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 default constructor is preferred, args must be an empty array or null.

culture
CultureInfo CultureInfo CultureInfo CultureInfo

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

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。An array of one or more attributes that can participate in activation. 通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列。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 Evidence Evidence 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[]) CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) 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 String String 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 String String 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 Boolean Boolean

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

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

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

binder
Binder Binder Binder Binder

バインディング、引数型の強制変換、メンバーの呼び出し、およびリフレクションを使用した 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 default constructor is preferred, args must be an empty array or null.

culture
CultureInfo CultureInfo CultureInfo CultureInfo

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

activationAttributes
Object[]

アクティべーションに参加できる 1 つ以上の属性の配列。An array of one or more attributes that can participate in activation. 通常、リモート オブジェクトをアクティブ化するために必要な URL を指定する 1 つの UrlAttribute オブジェクトを含む配列。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[]) CreateInstanceFrom(String, String, Object[]) CreateInstanceFrom(String, String, Object[]) 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 String String 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 String String 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 default 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) CreateInstanceFrom(String, String) CreateInstanceFrom(String, String) 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 String String 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 String String 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.

例では、定義、MarshallableExampleクラスは、アプリケーション ドメイン境界を越えてマーシャ リングすることができます。The example defines the MarshallableExample class, which can be marshaled across application domain boundaries. 例は、現在実行中のアセンブリのパスを作成、対象のアプリケーション ドメインを作成しを使用して、CreateInstanceFrom(String, String)対象のアプリケーション ドメインにアセンブリを読み込むしのインスタンスを作成するメソッドのオーバー ロードMarshallableExampleします。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 MarshallableExample.

注意

パスが、この例では絶対値であってため、相対パスも機能、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.

呼び出し元のアプリケーション ドメインに呼び出されるアセンブリの読み込みを回避することもできますが、呼び出し元から派生するは、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 MarshallableExample : 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 + "\\" +
        MarshallableExample::typeid->Assembly->GetName()->Name + ".exe";

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

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

    MarshallableExample^ ex = (MarshallableExample^) 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 MarshallableExample : MarshalByRefObject, ITest
{
    static void Main()
    {
        // Construct a path to the current assembly.
        string assemblyPath = Environment.CurrentDirectory + "\\" +
            typeof(MarshallableExample).Assembly.GetName().Name + ".exe";

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

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

        MarshallableExample ex = (MarshallableExample) 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'!
 */
Imports System

Public Interface ITest

    Sub Test(ByVal greeting As String)
End Interface

Public Class MarshallableExample 
    Inherits MarshalByRefObject
    Implements ITest

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

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

        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 MarshallableExample = CType(obj, MarshallableExample) 
        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 default 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.

こちらもご覧ください

適用対象