次の方法で共有


Assembly.LoadFrom メソッド

定義

アセンブリを読み込みます。

オーバーロード

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
古い.

ファイル名またはパス、セキュリティ証拠、ハッシュ値、およびハッシュ アルゴリズムを指定してアセンブリを読み込みます。

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

ファイル名またはパス、ハッシュ値、およびハッシュ アルゴリズムを指定してアセンブリを読み込みます。

LoadFrom(String)

ファイル名またはパスを指定してアセンブリを読み込みます。

LoadFrom(String, Evidence)
古い.

ファイル名またはパスを指定してアセンブリを読み込み、セキュリティ証拠を提供します。

注釈

.NET Framework のみ: リモートの場所からアセンブリを読み込む方法については、「」を参照してください <loadFromRemoteSources>

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

注意事項

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 http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

ファイル名またはパス、セキュリティ証拠、ハッシュ値、およびハッシュ アルゴリズムを指定してアセンブリを読み込みます。

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[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 http://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
[<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 http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
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

アセンブリのマニフェストを格納しているファイルの名前またはパス。

securityEvidence
Evidence

アセンブリを読み込むために必要な証拠。

hashValue
Byte[]

計算されたハッシュ コードの値。

hashAlgorithm
AssemblyHashAlgorithm

ファイルのハッシュ処理および厳密な名前の生成に使用されるハッシュ アルゴリズム。

戻り値

読み込まれるアセンブリ。

属性

例外

assemblyFilenullです。

assemblyFile が見つからないか、または読み込もうとしているモジュールにファイル名拡張子が指定されていません。

検出されたファイルを読み込めませんでした。

- または -

securityEvidence はあいまいではなく、正しくないと判断されました。

- または -

assemblyFileは、loadFromRemoteSources に<基づいて無効になっている場所を指定します>

assemblyFile は、現在読み込まれているランタイムの有効なアセンブリではありません。たとえば、64 ビット プロセスの 32 ビット アセンブリです。

"file://" で始まっていないコードベースが、必要な WebPermission なしで指定されました。

assemblyFile パラメーターが空の文字列 ("") です。

アセンブリ名がシステム定義の最大長を超えています。

注釈

パラメーターは assemblyFile 、エスケープ文字のない URI を参照する必要があります。 このメソッドは、URI 内のすべての無効な文字のエスケープ文字を提供します。

注意

ファイル転送プロトコル (FTP) はサポートされていません。 に指定された assemblyFile URI が FTP アドレスの場合、アセンブリは読み込まれません。 例外はスローされません。

assemblyFile は、現在のディレクトリに対して絶対または相対にすることができます。

アセンブリは、次の 3 つのコンテキストのいずれかに読み込むことができます。または、コンテキストなしで読み込むことができます。

  • 読み込みコンテキストには、プローブによって検出されたアセンブリが含まれます。GAC 内、ランタイムがホストされている場合はホスト アセンブリ ストア、またはアプリケーション ドメインの と PrivateBinPathApplicationBase格納されます。 Load メソッドのほとんどのオーバーロードは、このコンテキストにアセンブリを読み込みます。

  • 読み込み元コンテキストには、ユーザーがプローブによって検索されたディレクトリに含まれていないパスを指定したアセンブリが含まれています。 LoadFromCreateInstanceFromExecuteAssembly は、パスを使用して読み込むメソッドの例です。

    リモートの場所からアセンブリを読み込む方法については、「」を参照してください <loadFromRemoteSources>

  • リフレクションのみのコンテキストには、 メソッドと ReflectionOnlyLoadFrom メソッドが読み込まれたアセンブリがReflectionOnlyLoad含まれています。これらのコンテキスト内のコードは実行できません。

  • ユーザーがアセンブリを生成または見つけた場合、そのアセンブリはコンテキスト内にありません。 これは、アセンブリを含むバイト配列を指定する メソッドのオーバーロードを Load 使用して読み込まれたアセンブリ、およびリフレクション出力で作成され、ディスクに保存されない一時的な動的アセンブリに適用されます。

読み込み元コンテキストを使用すると、プローブに含まれていないパスからアセンブリを読み込むことができますが、パス情報はコンテキストによって維持されるため、そのパスに対する依存関係を見つけて読み込むことができます。

この LoadFrom 方法には、次の欠点があります。 代わりに Load を使用することを検討してください。

  • 同じ ID を持つアセンブリが既に読み込まれている場合、LoadFrom は、別のパスが指定されている場合であっても、読み込み済みのアセンブリを返します。

  • LoadFrom を使用してアセンブリを読み込んだ後、同じアセンブリを、読み込みコンテキストにあるアセンブリが表示名で読み込もうとすると、読み込みが失敗します。 この問題は、アセンブリが逆シリアル化されるときに発生します。

  • アセンブリが でLoadFrom読み込まれ、プローブ パスに同じ ID を持つアセンブリが含まれているが、場所が異なる場合、、MissingMethodException、またはその他のInvalidCastException予期しない動作が発生する可能性があります。

  • LoadFrom には、指定したパスに対する FileIOPermissionAccess.Read および FileIOPermissionAccess.PathDiscovery、または WebPermission が必要です。

  • のネイティブ イメージが存在する assemblyFile場合は使用されません。 アセンブリをドメインニュートラルとして読み込むことができません。

アセンブリに対して特定のアクセス許可を付与するかどうかは、証拠に基づいて決定されます。 アセンブリとセキュリティ証拠のマージの規則は次のとおりです。

  • パラメーターを指定しないEvidenceメソッドをLoadFrom使用すると、ローダーが提供する証拠がアセンブリに読み込まれます。

  • パラメーターを指定して メソッドをLoadFromEvidence使用すると、証拠の一部がマージされます。 メソッドの引数として指定された証拠の部分は、 LoadFrom ローダーによって提供される証拠の一部よりも優先されます。

  • 同じアセンブリでこのメソッドを複数回呼び出したが、異なる証拠が指定されている場合、異なる証拠指定の等価性と整合性を特定できないため、共通言語ランタイムは をスロー FileLoadException しません。 最初に成功する証拠は、使用される証拠です。

  • パラメーターを指定してメソッドをLoadFromByte[]使用して共通オブジェクト ファイル形式 (COFF) イメージを読み込むと、証拠が結合されます。 ZoneUrlSite呼び出し元のアセンブリから継承され、StrongNameHash COFF アセンブリから取得されます。

  • パラメーターを指定して メソッドをLoadFromByte[]使用しEvidence、COFF イメージを読み込む場合は、指定された証拠のみが使用されます。 呼び出し元アセンブリの証拠と COFF イメージの証拠は無視されます。

適用対象

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

ソース:
Assembly.cs
ソース:
Assembly.cs
ソース:
Assembly.cs

ファイル名またはパス、ハッシュ値、およびハッシュ アルゴリズムを指定してアセンブリを読み込みます。

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

アセンブリのマニフェストを格納しているファイルの名前またはパス。

hashValue
Byte[]

計算されたハッシュ コードの値。

hashAlgorithm
AssemblyHashAlgorithm

ファイルのハッシュ処理および厳密な名前の生成に使用されるハッシュ アルゴリズム。

戻り値

読み込まれるアセンブリ。

例外

.NET Core および .NET 5 以降のみ:すべての場合。

assemblyFilenullです。

assemblyFile が見つからないか、読み込もうとしているモジュールにファイル名拡張子が指定されていません。

検出されたファイルを読み込めませんでした。

- または -

assemblyFileは、loadFromRemoteSources に<基づいて無効になっている場所を指定します>

assemblyFile は、現在読み込まれているランタイムの有効なアセンブリではありません。たとえば、64 ビット プロセスの 32 ビット アセンブリです。

"file://" で始まっていないコードベースが、必要な WebPermission なしで指定されました。

assemblyFile パラメーターが空の文字列 ("") です。

アセンブリ名がシステム定義の最大長を超えています。

注釈

.NET Core および .NET 5 以降では、このメソッドは呼び出されたときに をスローします NotSupportedException 。 代わりに、LoadFrom(String) を使用してください。

パラメーターは assemblyFile 、エスケープ文字のない URI を参照する必要があります。 このメソッドは、URI 内のすべての無効な文字のエスケープ文字を提供します。

注意

ファイル転送プロトコル (FTP) はサポートされていません。 に指定された assemblyFile URI が FTP アドレスの場合、アセンブリは読み込まれません。 例外はスローされません。

assemblyFile は、現在のディレクトリに対して絶対または相対にすることができます。

アセンブリは、次の 3 つのコンテキストのいずれかに読み込むことができます。または、コンテキストなしで読み込むことができます。

  • 読み込みコンテキストには、グローバル アセンブリ キャッシュ内、ランタイムがホストされている場合はホスト アセンブリ ストア内、またはアプリケーション ドメインの と PrivateBinPath のプローブによってApplicationBase検出されたアセンブリが含まれます。 Load メソッドのほとんどのオーバーロードは、このコンテキストにアセンブリを読み込みます。

  • 読み込み元コンテキストには、ユーザーがプローブに含まれていないパスを指定したアセンブリが含まれています。 LoadFromCreateInstanceFromExecuteAssembly は、パスを使用して読み込むメソッドの例です。

    リモートの場所からアセンブリを読み込む方法については、「」を参照してください <loadFromRemoteSources>

  • リフレクションのみのコンテキストには、 メソッドと ReflectionOnlyLoadFrom メソッドが読み込まれたアセンブリがReflectionOnlyLoad含まれています。これらのコンテキスト内のコードは実行できません。

  • ユーザーがアセンブリを生成または見つけた場合、そのアセンブリはコンテキスト内にありません。 これは、アセンブリを含むバイト配列を指定する メソッドのオーバーロードを Load 使用して読み込まれたアセンブリ、およびリフレクション出力で作成され、ディスクに保存されない一時的な動的アセンブリに適用されます。

load-from コンテキストを使用すると、プローブに含まれていないパスからアセンブリを読み込むことができますが、パス情報はコンテキストによって維持されるため、そのパスへの依存関係を見つけて読み込むことができます。

メソッド LoadFrom には、次の欠点があります。 代わりに Load を使用することを検討してください。

  • 同じ ID を持つアセンブリが既に読み込まれている場合、LoadFrom は、別のパスが指定されている場合であっても、読み込み済みのアセンブリを返します。

  • LoadFrom を使用してアセンブリを読み込んだ後、同じアセンブリを、読み込みコンテキストにあるアセンブリが表示名で読み込もうとすると、読み込みが失敗します。 この問題は、アセンブリが逆シリアル化されるときに発生します。

  • アセンブリが でLoadFrom読み込まれ、プローブ パスに同じ ID を持つアセンブリが含まれているが、場所が異なる場合、、InvalidCastExceptionMissingMethodException、またはその他の予期しない動作が発生する可能性があります。

  • LoadFrom には、指定したパスに対する FileIOPermissionAccess.Read および FileIOPermissionAccess.PathDiscovery、または WebPermission が必要です。

  • のネイティブ イメージが存在する assemblyFile場合は、使用されません。 アセンブリをドメイン中立として読み込むことはできません。

アセンブリには、ローダーが提供する証拠が読み込まれます。

適用対象

LoadFrom(String)

ソース:
Assembly.cs
ソース:
Assembly.cs
ソース:
Assembly.cs

ファイル名またはパスを指定してアセンブリを読み込みます。

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

アセンブリのマニフェストを格納しているファイルの名前またはパス。

戻り値

読み込まれるアセンブリ。

例外

assemblyFilenullです。

assemblyFile が見つからないか、または読み込もうとしているモジュールにファイル名拡張子が指定されていません。

検出されたファイルを読み込めませんでした。

- または -

.NET Framework のみ: assemblyFileloadFromRemoteSources に<基づいて無効にする場所を指定します>

assemblyFile は、現在読み込まれているランタイムの有効なアセンブリではありません。たとえば、64 ビット プロセスの 32 ビット アセンブリなどです。

"file://" で始まっていないコードベースが、必要な WebPermission なしで指定されました。

assemblyFile パラメーターが空の文字列 ("") です。

アセンブリ名がシステム定義の最大長を超えています。

次の例では、ファイル名またはパスを指定してアセンブリを読み込みます。

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 を参照する必要があります。 このメソッドは、URI 内のすべての無効な文字のエスケープ文字を提供します。

注意

ファイル転送プロトコル (FTP) はサポートされていません。 に指定された assemblyFile URI が FTP アドレスの場合、アセンブリは読み込まれません。 例外はスローされません。

assemblyFile は、絶対または現在のディレクトリに対する相対値である可能性があります。

.NET Framework のみ: アセンブリは、次の 3 つのコンテキストのいずれかに読み込むことができます。または、コンテキストなしで読み込むことができます。

  • 読み込みコンテキストには、プローブによって検出されたアセンブリが含まれます。GAC 内、ランタイムがホストされている場合はホスト アセンブリ ストア、またはアプリケーション ドメインの と PrivateBinPathApplicationBase格納されます。 Load メソッドのほとんどのオーバーロードは、このコンテキストにアセンブリを読み込みます。

  • 読み込み元コンテキストには、ユーザーがプローブによって検索されるディレクトリに含まれていないパスを指定したアセンブリが含まれています。 また、パス情報はコンテキストによって維持されるため、そのパスへの依存関係を見つけて読み込むこともできます。 LoadFromCreateInstanceFromExecuteAssembly は、パスを使用して読み込むメソッドの例です。

    リモートの場所からアセンブリを読み込む方法については、「」を参照してください <loadFromRemoteSources>

  • リフレクションのみのコンテキストには、 メソッドと ReflectionOnlyLoadFrom メソッドがReflectionOnlyLoad読み込まれたアセンブリが含まれています。これらのコンテキストのコードは実行できません。

  • ユーザーがアセンブリを生成または見つけた場合は、どのコンテキストにも含まれません。 これは、アセンブリを含むバイト配列を指定する メソッドの Load オーバーロードを使用して読み込まれたアセンブリと、リフレクション出力で作成され、ディスクに保存されない一時的な動的アセンブリに適用されます。

メソッド LoadFrom には、次の欠点があります。 代わりに Load を使用することを検討してください。

  • 同じ ID を持つアセンブリが既に読み込み元コンテキストに読み込まれている場合、LoadFrom では、別のパスが指定されている場合でも、読み込み済みのアセンブリを返します。

  • 同じ ID を持つアセンブリが読み込みコンテキストに存在する場合でも、アセンブリを読み込み元コンテキストに読み込むことができます。 2 つのアセンブリ間の相互運用性は機能せず、その他の予期しない動作などのInvalidCastExceptionMissingMethodExceptionエラーが発生します。

  • プローブ パス内の場所で を呼び出すと LoadFrom 、読み込み元コンテキストではなく、読み込みコンテキストでアセンブリが読み込まれます。

  • バインド リダイレクト ポリシーによって ID が goverened されたアセンブリ ファイルが に LoadFrom渡されると、ポリシーが適用され、読み込みコンテキストのプローブ パスからアセンブリが読み込まれます。

  • アセンブリが読み込み元コンテキストで読み込まれ、その後、読み込みコンテキスト内のアセンブリが同じアセンブリを表示名で読み込もうとすると、読み込み試行は失敗します。 この問題は、アセンブリが逆シリアル化されるときに発生します。

  • LoadFrom には、指定したパスに対する FileIOPermissionAccess.Read および FileIOPermissionAccess.PathDiscovery、または WebPermission が必要です。

  • のネイティブ イメージが存在する assemblyFile場合は、使用されません。 アセンブリをドメインニュートラルとして読み込むことができません。

適用対象

LoadFrom(String, Evidence)

注意事項

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 http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

ファイル名またはパスを指定してアセンブリを読み込み、セキュリティ証拠を提供します。

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence);
[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 http://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
[<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 http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
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

アセンブリのマニフェストを格納しているファイルの名前またはパス。

securityEvidence
Evidence

アセンブリを読み込むために必要な証拠。

戻り値

読み込まれるアセンブリ。

属性

例外

assemblyFilenullです。

assemblyFile が見つからないか、または読み込もうとしているモジュールにファイル名拡張子が指定されていません。

検出されたファイルを読み込めませんでした。

- または -

securityEvidence はあいまいではなく、正しくないと判断されました。

- または -

assemblyFileは、loadFromRemoteSources に<基づいて無効になっている場所を指定します>

assemblyFile は、現在読み込まれているランタイムの有効なアセンブリではありません。たとえば、64 ビット プロセスの 32 ビット アセンブリなどです。

"file://" で始まっていないコードベースが、必要な WebPermission なしで指定されました。

assemblyFile パラメーターが空の文字列 ("") です。

アセンブリ名がシステム定義の最大長を超えています。

注釈

パラメーターは assemblyFile 、エスケープ文字のない URI を参照する必要があります。 このメソッドは、URI 内のすべての無効な文字のエスケープ文字を提供します。

注意

ファイル転送プロトコル (FTP) はサポートされていません。 に指定された assemblyFile URI が FTP アドレスの場合、アセンブリは読み込まれません。 例外はスローされません。

assemblyFile は、絶対または現在のディレクトリを基準にして指定できます。

アセンブリは、次の 3 つのコンテキストのいずれかに読み込むことができます。または、コンテキストなしで読み込むことができます。

  • 読み込みコンテキストには、プローブによって検出されたアセンブリが含まれます。GAC 内、ランタイムがホストされている場合はホスト アセンブリ ストア、またはアプリケーション ドメインの と PrivateBinPathApplicationBase格納されます。 Load メソッドのほとんどのオーバーロードは、このコンテキストにアセンブリを読み込みます。

  • 読み込み元コンテキストには、ユーザーがプローブによって検索されるディレクトリに含まれていないパスを指定したアセンブリが含まれています。 LoadFromCreateInstanceFromExecuteAssembly は、パスを使用して読み込むメソッドの例です。

    リモートの場所からアセンブリを読み込む方法については、「」を参照してください <loadFromRemoteSources>

  • リフレクションのみのコンテキストには、 メソッドと ReflectionOnlyLoadFrom メソッドがReflectionOnlyLoad読み込まれたアセンブリが含まれています。これらのコンテキストのコードは実行できません。

  • ユーザーがアセンブリを生成または見つけた場合は、どのコンテキストにも含まれません。 これは、アセンブリを含むバイト配列を指定する メソッドの Load オーバーロードを使用して読み込まれたアセンブリと、リフレクション出力で作成され、ディスクに保存されない一時的な動的アセンブリに適用されます。

load-from コンテキストを使用すると、プローブに含まれていないパスからアセンブリを読み込むことができますが、パス情報はコンテキストによって維持されるため、そのパスへの依存関係を見つけて読み込むことができます。

メソッド LoadFrom には、次の欠点があります。 代わりに Load を使用することを検討してください。

  • 同じ ID を持つアセンブリが既に読み込まれている場合、LoadFrom は、別のパスが指定されている場合であっても、読み込み済みのアセンブリを返します。

  • LoadFrom を使用してアセンブリを読み込んだ後、同じアセンブリを、読み込みコンテキストにあるアセンブリが表示名で読み込もうとすると、読み込みが失敗します。 この問題は、アセンブリが逆シリアル化されるときに発生します。

  • アセンブリが でLoadFrom読み込まれ、プローブ パスに同じ ID を持つアセンブリが含まれているが、場所が異なる場合、、InvalidCastExceptionMissingMethodException、またはその他の予期しない動作が発生する可能性があります。

  • LoadFrom には、指定したパスに対する FileIOPermissionAccess.Read および FileIOPermissionAccess.PathDiscovery、または WebPermission が必要です。

  • のネイティブ イメージが存在する assemblyFile場合は、使用されません。 アセンブリをドメインニュートラルとして読み込むことができません。

アセンブリに対して特定のアクセス許可を付与するかどうかは、証拠に基づいて決定されます。 アセンブリとセキュリティ証拠のマージの規則は次のとおりです。

  • パラメーターを指定しないEvidenceメソッドをLoadFrom使用すると、ローダーが提供する証拠がアセンブリに読み込まれます。

  • パラメーターを指定して メソッドをLoadFromEvidence使用すると、証拠の一部がマージされます。 メソッドの引数として提供される証拠の一部は、 LoadFrom ローダーによって提供される証拠の一部よりも優先されます。

  • 同じアセンブリでこのメソッドを複数回呼び出しても、異なる証拠が指定されている場合、異なる証拠仕様の等価性と整合性を判断できないため、共通言語ランタイムは をスロー FileLoadException しません。 最初に成功する証拠は、使用される証拠です。

  • パラメーターを指定してメソッドをLoadFromByte[]使用して共通オブジェクト ファイル形式 (COFF) イメージを読み込むと、証拠が結合されます。 ZoneUrlSite呼び出し元のアセンブリから継承され、StrongNameHash COFF アセンブリから取得されます。

  • パラメーターを指定して メソッドをLoadFromByte[]使用しEvidence、COFF イメージを読み込む場合は、指定された証拠のみが使用されます。 呼び出し元アセンブリの証拠と COFF イメージの証拠は無視されます。

こちらもご覧ください

適用対象