Assembly.LoadFrom メソッド

定義

アセンブリを読み込みます。Loads an assembly.

オーバーロード

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)

ファイル名またはパス、セキュリティ証拠、ハッシュ値、およびハッシュ アルゴリズムを指定してアセンブリを読み込みます。Loads an assembly given its file name or path, security evidence, hash value, and hash algorithm.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

ファイル名またはパス、ハッシュ値、およびハッシュ アルゴリズムを指定してアセンブリを読み込みます。Loads an assembly given its file name or path, hash value, and hash algorithm.

LoadFrom(String)

ファイル名またはパスを指定してアセンブリを読み込みます。Loads an assembly given its file name or path.

LoadFrom(String, Evidence)

ファイル名またはパスを指定してアセンブリを読み込み、セキュリティ証拠を提供します。Loads an assembly given its file name or path and supplying security evidence.

注釈

.NET Framework 4 以降では、リモートの場所から読み込まれたアセンブリ内のコードを実行する機能は既定で無効になっており、LoadFrom メソッドを呼び出すと FileLoadExceptionがスローされます。Starting with .NET Framework 4, the ability to execute code in assemblies loaded from remote locations is disabled by default, and the call to the LoadFrom method throws a FileLoadException. アセンブリを読み込んでコードを実行するには、次のいずれかを行う必要があります。To load the assembly and execute its code, you must either:

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)

警告

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

ファイル名またはパス、セキュリティ証拠、ハッシュ値、およびハッシュ アルゴリズムを指定してアセンブリを読み込みます。Loads an assembly given its file name or path, security evidence, hash value, and hash algorithm.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete]
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member LoadFrom : string * System.Security.Policy.Evidence * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

パラメーター

assemblyFile
String

アセンブリのマニフェストを格納しているファイルの名前またはパス。The name or path of the file that contains the manifest of the assembly.

securityEvidence
Evidence

アセンブリを読み込むために必要な証拠。Evidence for loading the assembly.

hashValue
Byte[]

計算されたハッシュ コードの値。The value of the computed hash code.

hashAlgorithm
AssemblyHashAlgorithm

ファイルのハッシュ処理および厳密な名前の生成に使用されるハッシュ アルゴリズム。The hash algorithm used for hashing files and for generating the strong name.

戻り値

読み込まれるアセンブリ。The loaded assembly.

属性

例外

assemblyFilenull です。assemblyFile is null.

assemblyFile が見つからないか、または読み込もうとしているモジュールにファイル名拡張子が指定されていません。assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

検出されたファイルを読み込めませんでした。A file that was found could not be loaded.

- または --or- securityEvidence はあいまいではなく、正しくないと判断されました。The securityEvidence is not ambiguous and is determined to be invalid.

- または --or-

リモート アセンブリ内でコードを実行する機能が無効になっています。The ability to execute code in remote assemblies is disabled. <loadFromRemoteSources> を参照してください。See <loadFromRemoteSources>.

assemblyFile は有効なアセンブリではありません (64 ビット プロセスの 32 ビット アセンブリなど)。assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. 詳細については、例外に関するトピックを参照してください。See the exception topic for more information.

- または --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.

"file://" で始まっていないコードベースが、必要な WebPermission なしで指定されました。A codebase that does not start with "file://" was specified without the required WebPermission.

assemblyFile パラメーターが空の文字列 ("") です。The assemblyFile parameter is an empty string ("").

アセンブリ名がシステム定義の最大長を超えています。The assembly name exceeds the system-defined maximum length.

注釈

assemblyFile パラメーターは、エスケープ文字を含まない URI を参照する必要があります。The assemblyFile parameter must refer to a URI without escape characters. このメソッドは、URI 内のすべての無効な文字に対してエスケープ文字を提供します。This method supplies escape characters for all invalid characters in the URI.

注意

ファイル転送プロトコル (FTP) はサポートされていません。File transfer protocol (FTP) is not supported. assemblyFile に指定された URI が FTP アドレスの場合、アセンブリは読み込まれません。If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. 例外をスローすることはありません。No exception is thrown.

assemblyFile は、絶対パスでも、現在のディレクトリからの相対パスでもかまいません。アセンブリは、呼び出し元のドメインに読み込まれます。assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

アセンブリは、次の3つのコンテキストのいずれかに読み込むことができます。また、コンテキストなしで読み込むこともできます。Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • 読み込みコンテキストには、プローブによって検出されたアセンブリが含まれています: GAC、ランタイムがホストされている場合はホストアセンブリストア、アプリケーションドメインの ApplicationBasePrivateBinPathThe load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. Load メソッドのほとんどのオーバーロードは、このコンテキストにアセンブリを読み込みます。Most overloads of the Load method load assemblies into this context.

  • 読み込み元コンテキストには、プローブによって検索されたディレクトリに含まれていないパスをユーザーが指定したアセンブリが含まれています。The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFromCreateInstanceFromExecuteAssembly は、パスを使用して読み込むメソッドの例です。LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    .NET Framework 4 以降では、assemblyFile の URI でリモートの場所が指定されている場合、既定ではアセンブリの読み込みが無効になり、LoadFrom メソッドは FileLoadExceptionをスローします。Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. リモートの場所から読み込まれたコードの実行を有効にするには、 <loadFromRemoteSources>構成要素を使用します。To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • リフレクションのみのコンテキストには、ReflectionOnlyLoad および ReflectionOnlyLoadFrom メソッドで読み込まれたアセンブリが含まれます。これらのコンテキスト内のコードは実行できません。The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • ユーザーがアセンブリを生成または検出した場合は、どのコンテキストにも存在しません。If the user generated or found the assembly, it is not in any context. これは、アセンブリを格納するバイト配列を指定する Load メソッドのオーバーロードを使用して読み込まれたアセンブリと、リフレクション出力で作成されディスクに保存されていない一時的な動的アセンブリに適用されます。This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

読み込み元コンテキストを使用すると、プローブに含まれていないパスからアセンブリを読み込むことができます。また、パス情報がコンテキストによって維持されるため、そのパスに対する依存関係を見つけて読み込むことができます。The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

LoadFrom 方法には、次のような欠点があります。The LoadFrom method has the following disadvantages. 代わりに Load を使用することを検討してください。Consider using Load instead.

  • 同じ ID を持つアセンブリが既に読み込まれている場合、LoadFrom は、別のパスが指定されている場合であっても、読み込み済みのアセンブリを返します。If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • LoadFrom を使用してアセンブリを読み込んだ後、同じアセンブリを、読み込みコンテキストにあるアセンブリが表示名で読み込もうとすると、読み込みが失敗します。If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. この問題は、アセンブリが逆シリアル化されるときに発生します。This can occur when an assembly is deserialized.

  • アセンブリが LoadFromで読み込まれ、プローブパスに同じ id を持ち、別の場所にあるアセンブリが含まれている場合、InvalidCastExceptionMissingMethodException、またはその他の予期しない動作が発生する可能性があります。If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom には、指定したパスに対する FileIOPermissionAccess.Read および FileIOPermissionAccess.PathDiscovery、または WebPermission が必要です。LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • assemblyFile用のネイティブイメージが存在する場合、そのイメージは使用されません。If a native image exists for assemblyFile, it is not used. アセンブリをドメイン中立として読み込むことはできません。The assembly cannot be loaded as domain neutral.

  • .NET Framework バージョン1.0 および1.1 では、ポリシーは適用されません。In the .NET Framework version 1.0 and 1.1, policy is not applied.

アセンブリに対して特定のアクセス許可を付与するかどうかは、証拠に基づいて決定されます。Whether certain permissions are granted or not granted to an assembly is based on evidence. アセンブリおよびセキュリティの証拠のマージ規則は次のとおりです。The rules for assembly and security evidence merging are as follows:

  • Evidence パラメーターを指定せずに LoadFrom メソッドを使用すると、アセンブリはローダーが提供する証拠と共に読み込まれます。When you use a LoadFrom method with no Evidence parameter, the assembly is loaded with the evidence that the loader supplies.

  • Evidence パラメーターを指定して LoadFrom メソッドを使用すると、証拠の一部がマージされます。When you use a LoadFrom method with an Evidence parameter, pieces of evidence are merged. LoadFrom メソッドの引数として指定された証拠の部分は、ローダーによって提供される証拠の部分を置き換えます。Pieces of evidence supplied as an argument to the LoadFrom method supersede pieces of evidence supplied by the loader.

  • 同じアセンブリでこのメソッドを複数回呼び出しても、異なる証拠が指定されている場合、共通言語ランタイムは、異なる証拠仕様の等価性と整合性を判断できないため、FileLoadException をスローしません。If you call this method more than once on the same assembly but with a different evidence specified, the common language runtime does not throw a FileLoadException because the equality and integrity of the different evidence specifications cannot be determined. 最初に成功する証拠は、使用される証拠です。The evidence that first succeeds is the evidence that is used.

  • Byte[] パラメーターを指定して LoadFrom メソッドを使用して、Common Object File Format (COFF) イメージを読み込むと、証拠が結合されます。When you use a LoadFrom method with a Byte[] parameter to load a common object file format (COFF) image, evidence is combined. ZoneUrl および Site は呼び出し元のアセンブリから継承され、Hash および StrongName は COFF アセンブリから取得されます。Zone, Url and Site are inherited from the calling assembly, and Hash and StrongName are taken from the COFF assembly.

  • Byte[] パラメーターを指定して LoadFrom メソッドを使用し、COFF イメージを読み込む Evidence には、指定された証拠だけが使用されます。When you use a LoadFrom method with a Byte[] parameter and Evidence to load a COFF image, only the supplied evidence is used. 呼び出し元アセンブリの証拠および COFF イメージの証拠は無視されます。Evidence of the calling assembly and evidence of the COFF image is ignored.

セキュリティ

SecurityPermission
証拠を使用してアセンブリを読み込む場合は。to load an assembly with evidence. 関連付けられた列挙型: ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
"file://" で始まる URI を読み取ります。for reading a URI that begins with "file://". 関連付けられた列挙型: ReadAssociated enumeration: Read

WebPermission
"file://" で始まらない URI を読み取る場合。for reading a URI that does not begin with "file://".

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

ファイル名またはパス、ハッシュ値、およびハッシュ アルゴリズムを指定してアセンブリを読み込みます。Loads an assembly given its file name or path, hash value, and hash algorithm.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

パラメーター

assemblyFile
String

アセンブリのマニフェストを格納しているファイルの名前またはパス。The name or path of the file that contains the manifest of the assembly.

hashValue
Byte[]

計算されたハッシュ コードの値。The value of the computed hash code.

hashAlgorithm
AssemblyHashAlgorithm

ファイルのハッシュ処理および厳密な名前の生成に使用されるハッシュ アルゴリズム。The hash algorithm used for hashing files and for generating the strong name.

戻り値

読み込まれるアセンブリ。The loaded assembly.

例外

assemblyFilenull です。assemblyFile is null.

assemblyFile が見つからないか、読み込もうとしているモジュールにファイル名拡張子が指定されていません。assemblyFile is not found, or the module you are trying to load does not specify a file name extension.

検出されたファイルを読み込めませんでした。A file that was found could not be loaded.

- または --or-

リモート アセンブリ内でコードを実行する機能が無効になっています。The ability to execute code in remote assemblies is disabled. <loadFromRemoteSources> を参照してください。See <loadFromRemoteSources>.

assemblyFile は有効なアセンブリではありません (64 ビット プロセスの 32 ビット アセンブリなど)。assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. 詳細については、例外に関するトピックを参照してください。See the exception topic for more information.

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

"file://" で始まっていないコードベースが、必要な WebPermission なしで指定されました。A codebase that does not start with "file://" was specified without the required WebPermission.

assemblyFile パラメーターが空の文字列 ("") です。The assemblyFile parameter is an empty string ("").

アセンブリ名がシステム定義の最大長を超えています。The assembly name exceeds the system-defined maximum length.

注釈

assemblyFile パラメーターは、エスケープ文字を含まない URI を参照する必要があります。The assemblyFile parameter must refer to a URI without escape characters. このメソッドは、URI 内のすべての無効な文字に対してエスケープ文字を提供します。This method supplies escape characters for all invalid characters in the URI.

注意

ファイル転送プロトコル (FTP) はサポートされていません。File transfer protocol (FTP) is not supported. assemblyFile に指定された URI が FTP アドレスの場合、アセンブリは読み込まれません。If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. 例外をスローすることはありません。No exception is thrown.

assemblyFile は、絶対パスでも、現在のディレクトリからの相対パスでもかまいません。アセンブリは、呼び出し元のドメインに読み込まれます。assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

アセンブリは、次の3つのコンテキストのいずれかに読み込むことができます。また、コンテキストなしで読み込むこともできます。Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • 読み込みコンテキストには、プローブによって検出されるアセンブリが含まれています。グローバルアセンブリキャッシュ、ランタイムがホストされている場合はホストアセンブリストア、アプリケーションドメインの ApplicationBasePrivateBinPathThe load context contains assemblies found by probing: in the global assembly cache, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. Load メソッドのほとんどのオーバーロードは、このコンテキストにアセンブリを読み込みます。Most overloads of the Load method load assemblies into this context.

  • 読み込み元コンテキストには、プローブに含まれていないパスをユーザーが指定したアセンブリが含まれています。The load-from context contains assemblies for which the user provided a path that is not included in probing. LoadFromCreateInstanceFromExecuteAssembly は、パスを使用して読み込むメソッドの例です。LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    .NET Framework 4 以降では、assemblyFile の URI でリモートの場所が指定されている場合、既定ではアセンブリの読み込みが無効になり、LoadFrom メソッドは FileLoadExceptionをスローします。Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. リモートの場所から読み込まれたコードの実行を有効にするには、 <loadFromRemoteSources>構成要素を使用します。To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • リフレクションのみのコンテキストには、ReflectionOnlyLoad および ReflectionOnlyLoadFrom メソッドで読み込まれたアセンブリが含まれます。これらのコンテキスト内のコードは実行できません。The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • ユーザーがアセンブリを生成または検出した場合は、どのコンテキストにも存在しません。If the user generated or found the assembly, it is not in any context. これは、アセンブリを格納するバイト配列を指定する Load メソッドのオーバーロードを使用して読み込まれたアセンブリと、リフレクション出力で作成されディスクに保存されていない一時的な動的アセンブリに適用されます。This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

読み込み元コンテキストを使用すると、プローブに含まれていないパスからアセンブリを読み込むことができます。また、パス情報がコンテキストによって維持されるため、そのパスに対する依存関係を見つけて読み込むことができます。The load-from context allows an assembly to be loaded from a path that is not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

LoadFrom 方法には、次のような欠点があります。The LoadFrom method has the following disadvantages. 代わりに Load を使用することを検討してください。Consider using Load instead.

  • 同じ ID を持つアセンブリが既に読み込まれている場合、LoadFrom は、別のパスが指定されている場合であっても、読み込み済みのアセンブリを返します。If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • LoadFrom を使用してアセンブリを読み込んだ後、同じアセンブリを、読み込みコンテキストにあるアセンブリが表示名で読み込もうとすると、読み込みが失敗します。If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. この問題は、アセンブリが逆シリアル化されるときに発生します。This can occur when an assembly is deserialized.

  • アセンブリが LoadFromで読み込まれ、プローブパスに同じ id を持ち、別の場所にあるアセンブリが含まれている場合、InvalidCastExceptionMissingMethodException、またはその他の予期しない動作が発生する可能性があります。If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom には、指定したパスに対する FileIOPermissionAccess.Read および FileIOPermissionAccess.PathDiscovery、または WebPermission が必要です。LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • assemblyFile用のネイティブイメージが存在する場合、そのイメージは使用されません。If a native image exists for assemblyFile, it is not used. アセンブリをドメイン中立として読み込むことはできません。The assembly cannot be loaded as domain-neutral.

アセンブリは、ローダーが提供する証拠と共に読み込まれます。The assembly is loaded with the evidence that the loader supplies.

セキュリティ

SecurityPermission
証拠を使用してアセンブリを読み込む場合は。to load an assembly with evidence. 関連付けられた列挙型: ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
"file://" で始まる URI を読み取ります。for reading a URI that begins with "file://". 関連付けられた列挙型: ReadAssociated enumeration: Read

WebPermission
"file://" で始まらない URI を読み取る場合。for reading a URI that does not begin with "file://".

LoadFrom(String)

ファイル名またはパスを指定してアセンブリを読み込みます。Loads an assembly given its file name or path.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile);
public static System.Reflection.Assembly LoadFrom (string assemblyFile);
static member LoadFrom : string -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String) As Assembly

パラメーター

assemblyFile
String

アセンブリのマニフェストを格納しているファイルの名前またはパス。The name or path of the file that contains the manifest of the assembly.

戻り値

読み込まれるアセンブリ。The loaded assembly.

例外

assemblyFilenull です。assemblyFile is null.

assemblyFile が見つからないか、または読み込もうとしているモジュールにファイル名拡張子が指定されていません。assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

検出されたファイルを読み込めませんでした。A file that was found could not be loaded.

- または --or-

リモート アセンブリ内でコードを実行する機能が無効になっています。The ability to execute code in remote assemblies is disabled. <loadFromRemoteSources> を参照してください。See <loadFromRemoteSources>.

assemblyFile は有効なアセンブリではありません (64 ビット プロセスの 32 ビット アセンブリなど)。assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. 詳細については、例外に関するトピックを参照してください。See the exception topic for more information.

- または --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.

"file://" で始まっていないコードベースが、必要な WebPermission なしで指定されました。A codebase that does not start with "file://" was specified without the required WebPermission.

assemblyFile パラメーターが空の文字列 ("") です。The assemblyFile parameter is an empty string ("").

アセンブリ名がシステム定義の最大長を超えています。The assembly name exceeds the system-defined maximum length.

次の例では、ファイル名またはパスを指定してアセンブリを読み込みます。The following example loads an assembly given its file name or path.

Assembly^ SampleAssembly;
SampleAssembly = Assembly::LoadFrom( "c:\\Sample.Assembly.dll" );
// Obtain a reference to a method known to exist in assembly.
MethodInfo^ Method = SampleAssembly->GetTypes()[ 0 ]->GetMethod( "Method1" );
// Obtain a reference to the parameters collection of the MethodInfo instance.
array<ParameterInfo^>^ Params = Method->GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System::String
//   Position = 0
//   Optional=False
for each ( ParameterInfo^ Param in Params )
{
   Console::WriteLine( "Param= {0}", Param->Name );
   Console::WriteLine( "  Type= {0}", Param->ParameterType );
   Console::WriteLine( "  Position= {0}", Param->Position );
   Console::WriteLine( "  Optional= {0}", Param->IsOptional );
}
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
// Obtain a reference to a method known to exist in assembly.
MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
ParameterInfo[] Params = Method.GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System.String
//   Position = 0
//   Optional=False
foreach (ParameterInfo Param in Params)
{
    Console.WriteLine("Param=" + Param.Name.ToString());
    Console.WriteLine("  Type=" + Param.ParameterType.ToString());
    Console.WriteLine("  Position=" + Param.Position.ToString());
    Console.WriteLine("  Optional=" + Param.IsOptional.ToString());
}
Dim SampleAssembly As [Assembly]
SampleAssembly = [Assembly].LoadFrom("c:\Sample.Assembly.dll")
' Obtain a reference to a method known to exist in assembly.
Dim Method As MethodInfo = SampleAssembly.GetTypes()(0).GetMethod("Method1")
' Obtain a reference to the parameters collection of the MethodInfo instance.
Dim Params As ParameterInfo() = Method.GetParameters()
' Display information about method parameters.
' Param = sParam1
'   Type = System.String
'   Position = 0
'   Optional=False
For Each Param As ParameterInfo In Params
    Console.WriteLine(("Param=" + Param.Name.ToString()))
    Console.WriteLine(("  Type=" + Param.ParameterType.ToString()))
    Console.WriteLine(("  Position=" + Param.Position.ToString()))
    Console.WriteLine(("  Optional=" + Param.IsOptional.ToString()))
Next 

注釈

assemblyFile パラメーターは、エスケープ文字を含まない URI を参照する必要があります。The assemblyFile parameter must refer to a URI without escape characters. このメソッドは、URI 内のすべての無効な文字に対してエスケープ文字を提供します。This method supplies escape characters for all invalid characters in the URI.

注意

ファイル転送プロトコル (FTP) はサポートされていません。File transfer protocol (FTP) is not supported. assemblyFile に指定された URI が FTP アドレスの場合、アセンブリは読み込まれません。If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. 例外をスローすることはありません。No exception is thrown.

assemblyFile は、絶対パスでも、現在のディレクトリからの相対パスでもかまいません。アセンブリは、呼び出し元のドメインに読み込まれます。assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

アセンブリは、次の3つのコンテキストのいずれかに読み込むことができます。また、コンテキストなしで読み込むこともできます。Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • 読み込みコンテキストには、プローブによって検出されたアセンブリが含まれています: GAC、ランタイムがホストされている場合はホストアセンブリストア、アプリケーションドメインの ApplicationBasePrivateBinPathThe load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. Load メソッドのほとんどのオーバーロードは、このコンテキストにアセンブリを読み込みます。Most overloads of the Load method load assemblies into this context.

  • 読み込み元コンテキストには、プローブによって検索されたディレクトリに含まれていないパスをユーザーが指定したアセンブリが含まれています。The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFromCreateInstanceFromExecuteAssembly は、パスを使用して読み込むメソッドの例です。LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    .NET Framework 4 以降では、assemblyFile の URI でリモートの場所が指定されている場合、既定ではアセンブリの読み込みが無効になり、LoadFrom メソッドは FileLoadExceptionをスローします。Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. リモートの場所から読み込まれたコードの実行を有効にするには、 <loadFromRemoteSources>構成要素を使用します。To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • リフレクションのみのコンテキストには、ReflectionOnlyLoad および ReflectionOnlyLoadFrom メソッドで読み込まれたアセンブリが含まれます。これらのコンテキスト内のコードは実行できません。The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • ユーザーがアセンブリを生成または検出した場合は、どのコンテキストにも存在しません。If the user generated or found the assembly, it is not in any context. これは、アセンブリを格納するバイト配列を指定する Load メソッドのオーバーロードを使用して読み込まれたアセンブリと、リフレクション出力で作成されディスクに保存されていない一時的な動的アセンブリに適用されます。This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

読み込み元コンテキストを使用すると、プローブに含まれていないパスからアセンブリを読み込むことができます。また、パス情報がコンテキストによって維持されるため、そのパスに対する依存関係を見つけて読み込むことができます。The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

LoadFrom 方法には、次のような欠点があります。The LoadFrom method has the following disadvantages. 代わりに Load を使用することを検討してください。Consider using Load instead.

  • 同じ ID を持つアセンブリが既に読み込まれている場合、LoadFrom は、別のパスが指定されている場合であっても、読み込み済みのアセンブリを返します。If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • LoadFrom を使用してアセンブリを読み込んだ後、同じアセンブリを、読み込みコンテキストにあるアセンブリが表示名で読み込もうとすると、読み込みが失敗します。If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. これは、アセンブリが逆シリアル化されるときに発生する可能性があります。This can occur when an assembly is de-serialized.

  • アセンブリが LoadFromで読み込まれ、プローブパスに同じ id を持ち、別の場所にあるアセンブリが含まれている場合、InvalidCastExceptionMissingMethodException、またはその他の予期しない動作が発生する可能性があります。If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom には、指定したパスに対する FileIOPermissionAccess.Read および FileIOPermissionAccess.PathDiscovery、または WebPermission が必要です。LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • assemblyFile用のネイティブイメージが存在する場合、そのイメージは使用されません。If a native image exists for assemblyFile, it is not used. アセンブリをドメイン中立として読み込むことはできません。The assembly cannot be loaded as domain neutral.

  • .NET Framework バージョン1.0 および1.1 では、ポリシーは適用されません。In the .NET Framework version 1.0 and 1.1, policy is not applied.

セキュリティ

FileIOPermission
"file://" で始まる URI を読み取ります。for reading a URI that begins with "file://". 関連付けられた列挙型: ReadAssociated enumeration: Read

WebPermission
"file://" で始まらない URI を読み取る場合。for reading a URI that does not begin with "file://".

LoadFrom(String, Evidence)

警告

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

ファイル名またはパスを指定してアセンブリを読み込み、セキュリティ証拠を提供します。Loads an assembly given its file name or path and supplying security evidence.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence);
[System.Obsolete]
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence);
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence) As Assembly

パラメーター

assemblyFile
String

アセンブリのマニフェストを格納しているファイルの名前またはパス。The name or path of the file that contains the manifest of the assembly.

securityEvidence
Evidence

アセンブリを読み込むために必要な証拠。Evidence for loading the assembly.

戻り値

読み込まれるアセンブリ。The loaded assembly.

属性

例外

assemblyFilenullです。assemblyFile is null.

assemblyFile が見つからないか、または読み込もうとしているモジュールにファイル名拡張子が指定されていません。assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

検出されたファイルを読み込めませんでした。A file that was found could not be loaded.

- または --or- securityEvidence はあいまいではなく、正しくないと判断されました。The securityEvidence is not ambiguous and is determined to be invalid.

- または --or-

リモート アセンブリ内でコードを実行する機能が無効になっています。The ability to execute code in remote assemblies is disabled. <loadFromRemoteSources> を参照してください。See <loadFromRemoteSources>.

assemblyFile は有効なアセンブリではありません (64 ビット プロセスの 32 ビット アセンブリなど)。assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. 詳細については、例外に関するトピックを参照してください。See the exception topic for more information.

- または --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.

"file://" で始まっていないコードベースが、必要な WebPermission なしで指定されました。A codebase that does not start with "file://" was specified without the required WebPermission.

assemblyFile パラメーターが空の文字列 ("") です。The assemblyFile parameter is an empty string ("").

アセンブリ名がシステム定義の最大長を超えています。The assembly name exceeds the system-defined maximum length.

注釈

assemblyFile パラメーターは、エスケープ文字を含まない URI を参照する必要があります。The assemblyFile parameter must refer to a URI without escape characters. このメソッドは、URI 内のすべての無効な文字に対してエスケープ文字を提供します。This method supplies escape characters for all invalid characters in the URI.

注意

ファイル転送プロトコル (FTP) はサポートされていません。File transfer protocol (FTP) is not supported. assemblyFile に指定された URI が FTP アドレスの場合、アセンブリは読み込まれません。If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. 例外をスローすることはありません。No exception is thrown.

assemblyFile は、絶対パスでも、現在のディレクトリからの相対パスでもかまいません。アセンブリは、呼び出し元のドメインに読み込まれます。assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

アセンブリは、次の3つのコンテキストのいずれかに読み込むことができます。また、コンテキストなしで読み込むこともできます。Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • 読み込みコンテキストには、プローブによって検出されたアセンブリが含まれています: GAC、ランタイムがホストされている場合はホストアセンブリストア、アプリケーションドメインの ApplicationBasePrivateBinPathThe load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. Load メソッドのほとんどのオーバーロードは、このコンテキストにアセンブリを読み込みます。Most overloads of the Load method load assemblies into this context.

  • 読み込み元コンテキストには、プローブによって検索されたディレクトリに含まれていないパスをユーザーが指定したアセンブリが含まれています。The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFromCreateInstanceFromExecuteAssembly は、パスを使用して読み込むメソッドの例です。LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    .NET Framework 4 以降では、assemblyFile の URI でリモートの場所が指定されている場合、既定ではアセンブリの読み込みが無効になり、LoadFrom メソッドは FileLoadExceptionをスローします。Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. リモートの場所から読み込まれたコードの実行を有効にするには、 <loadFromRemoteSources>構成要素を使用します。To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • リフレクションのみのコンテキストには、ReflectionOnlyLoad および ReflectionOnlyLoadFrom メソッドで読み込まれたアセンブリが含まれます。これらのコンテキスト内のコードは実行できません。The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • ユーザーがアセンブリを生成または検出した場合は、どのコンテキストにも存在しません。If the user generated or found the assembly, it is not in any context. これは、アセンブリを格納するバイト配列を指定する Load メソッドのオーバーロードを使用して読み込まれたアセンブリと、リフレクション出力で作成されディスクに保存されていない一時的な動的アセンブリに適用されます。This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

読み込み元コンテキストを使用すると、プローブに含まれていないパスからアセンブリを読み込むことができます。また、パス情報がコンテキストによって維持されるため、そのパスに対する依存関係を見つけて読み込むことができます。The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

LoadFrom 方法には、次のような欠点があります。The LoadFrom method has the following disadvantages. 代わりに Load を使用することを検討してください。Consider using Load instead.

  • 同じ ID を持つアセンブリが既に読み込まれている場合、LoadFrom は、別のパスが指定されている場合であっても、読み込み済みのアセンブリを返します。If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • LoadFrom を使用してアセンブリを読み込んだ後、同じアセンブリを、読み込みコンテキストにあるアセンブリが表示名で読み込もうとすると、読み込みが失敗します。If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. この問題は、アセンブリが逆シリアル化されるときに発生します。This can occur when an assembly is deserialized.

  • アセンブリが LoadFromで読み込まれ、プローブパスに同じ id を持ち、別の場所にあるアセンブリが含まれている場合、InvalidCastExceptionMissingMethodException、またはその他の予期しない動作が発生する可能性があります。If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom には、指定したパスに対する FileIOPermissionAccess.Read および FileIOPermissionAccess.PathDiscovery、または WebPermission が必要です。LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • assemblyFile用のネイティブイメージが存在する場合、そのイメージは使用されません。If a native image exists for assemblyFile, it is not used. アセンブリをドメイン中立として読み込むことはできません。The assembly cannot be loaded as domain neutral.

  • .NET Framework バージョン1.0 および1.1 では、ポリシーは適用されません。In the .NET Framework version 1.0 and 1.1, policy is not applied.

アセンブリに対して特定のアクセス許可を付与するかどうかは、証拠に基づいて決定されます。Whether certain permissions are granted or not granted to an assembly is based on evidence. アセンブリおよびセキュリティの証拠のマージ規則は次のとおりです。The rules for assembly and security evidence merging are as follows:

  • Evidence パラメーターを指定せずに LoadFrom メソッドを使用すると、アセンブリはローダーが提供する証拠と共に読み込まれます。When you use a LoadFrom method with no Evidence parameter, the assembly is loaded with the evidence that the loader supplies.

  • Evidence パラメーターを指定して LoadFrom メソッドを使用すると、証拠の一部がマージされます。When you use a LoadFrom method with an Evidence parameter, pieces of evidence are merged. LoadFrom メソッドの引数として指定された証拠の部分は、ローダーによって提供される証拠の部分を置き換えます。Pieces of evidence supplied as an argument to the LoadFrom method supersede pieces of evidence supplied by the loader.

  • 同じアセンブリでこのメソッドを複数回呼び出しても、異なる証拠が指定されている場合、共通言語ランタイムは、異なる証拠仕様の等価性と整合性を判断できないため、FileLoadException をスローしません。If you call this method more than once on the same assembly but with a different evidence specified, the common language runtime does not throw a FileLoadException because the equality and integrity of the different evidence specifications cannot be determined. 最初に成功する証拠は、使用される証拠です。The evidence that first succeeds is the evidence that is used.

  • Byte[] パラメーターを指定して LoadFrom メソッドを使用して、Common Object File Format (COFF) イメージを読み込むと、証拠が結合されます。When you use a LoadFrom method with a Byte[] parameter to load a common object file format (COFF) image, evidence is combined. ZoneUrl および Site は呼び出し元のアセンブリから継承され、Hash および StrongName は COFF アセンブリから取得されます。Zone, Url and Site are inherited from the calling assembly, and Hash and StrongName are taken from the COFF assembly.

  • Byte[] パラメーターを指定して LoadFrom メソッドを使用し、COFF イメージを読み込む Evidence には、指定された証拠だけが使用されます。When you use a LoadFrom method with a Byte[] parameter and Evidence to load a COFF image, only the supplied evidence is used. 呼び出し元アセンブリの証拠および COFF イメージの証拠は無視されます。Evidence of the calling assembly and evidence of the COFF image is ignored.

セキュリティ

SecurityPermission
証拠を使用してアセンブリを読み込む場合は。to load an assembly with evidence. 関連付けられた列挙型: ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
"file://" で始まる URI を読み取ります。for reading a URI that begins with "file://". 関連付けられた列挙型: ReadAssociated enumeration: Read

WebPermission
"file://" で始まらない URI を読み取る場合。for reading a URI that does not begin with "file://".

こちらもご覧ください

適用対象