Assembly.Load メソッド (String)
長い形式の名前を指定してアセンブリを読み込みます。
Overloads Public Shared Function Load( _
ByVal assemblyString As String _) As Assembly
[C#]
public static Assembly Load(stringassemblyString);
[C++]
public: static Assembly* Load(String* assemblyString);
[JScript]
public static function Load(
assemblyString : String) : Assembly;
パラメータ
- assemblyString
長い形式のアセンブリ名。
戻り値
読み込み済みのアセンブリ。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | assemblyString が null 参照 (Visual Basic では Nothing) です。 |
FileNotFoundException | assemblyString が見つかりません。 |
BadImageFormatException | assemblyFile が有効なアセンブリではありません。 |
SecurityException | 呼び出し元に、必要なアクセス許可がありません。 |
解説
Load メソッドは既定の読み込みコンテキストを使用し、マネージ アプリケーションで参照されるアセンブリの推移的閉包である一連のアセンブリについて、アセンブリ名とアセンブリ インスタンス情報を記録します。既定の読み込みコンテキストは、Load メソッドで読み込まれるアセンブリに適用され、完全限定されたアセンブリ参照を使用します。
特定のアクセス許可がアセンブリに与えられるかどうかは、証拠を基に判断されます。アセンブリおよびセキュリティの証拠のマージの規則は次のとおりです。
- Evidence パラメータなしで Load メソッドを使用した場合は、ローダーが提供した証拠でアセンブリが読み込まれます。
- Evidence パラメータ付きで Load メソッドを使用した場合は、証拠がマージされます。 Load メソッドの引数として提供された証拠は、ローダーによって提供された証拠の代わりとして使用されます。
- Byte[] パラメータ付きで Load メソッドを使用して COFF (Common Object File Format) イメージを読み込んだ場合、証拠は結合されます。 Zone 、 Url および Site は呼び出し元のアセンブリから継承され、 Hash および StrongName は COFF アセンブリから取得されます。
- Byte[] パラメータおよび Evidence 付きで Load メソッドを使用して COFF (Common Object File Format) イメージを読み込んだ場合、指定された証拠だけが使用されます。呼び出し元のアセンブリの証拠および COFF イメージの証拠は無視されます。
C++ マネージ拡張実行可能ファイルにリフレクションすると、 BadImageFormatException がスローされることがあります。最大の原因は、C++ コンパイラが再配置アドレスまたは .Reloc セクションを実行可能ファイルから除去することです。C++ 実行可能ファイルの .reloc アドレスを保持するには、リンク時に /fixed:no を指定します。
使用例
[Visual Basic, C#, C++] 完全限定名を指定してアセンブリを読み込み、指定したアセンブリに格納されたすべての型をリストに出力する例を次に示します。このコード例を実行するには、アセンブリの完全限定名を指定する必要があります。アセンブリの完全限定名を取得する方法については、「 アセンブリ名 」を参照してください。
Imports System
Imports System.Reflection
Class Class1
Public Shared Sub Main()
Dim SampleAssembly As [Assembly]
' You must supply a valid fully qualified assembly name here.
SampleAssembly = [Assembly].Load("Assembly text name, Version, Culture, PublicKeyToken")
Dim Types As Type() = SampleAssembly.GetTypes()
Dim oType As Type
' Display all the types contained in the specified assembly.
For Each oType In Types
Console.WriteLine(oType.Name.ToString())
Next oType
End Sub 'LoadSample
End Class 'Class1
[C#]
using System;
using System.Reflection;
class Class1
{
public static void Main()
{
Assembly SampleAssembly;
// You must supply a valid fully qualified assembly name here.
SampleAssembly = Assembly.Load("Assembly text name, Version, Culture, PublicKeyToken");
Type[] Types = SampleAssembly.GetTypes();
// Display all the types contained in the specified assembly.
foreach (Type oType in Types)
{
Console.WriteLine(oType.Name.ToString());
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Reflection;
int main()
{
Assembly* SampleAssembly;
// You must supply a valid fully qualified assembly name here.
SampleAssembly = Assembly::Load(S"Assembly text name, Version, Culture, PublicKeyToken");
Type* Types[] = SampleAssembly->GetTypes();
// Display all the types contained in the specified assembly.
IEnumerator* myEnum = Types->GetEnumerator();
while (myEnum->MoveNext())
{
Type* oType = __try_cast<Type*>(myEnum->Current);
Console::WriteLine(oType->Name);
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard
.NET Framework セキュリティ:
- ReflectionPermission (Type.InvokeMember などの機構を通じて遅延バインディングで呼び出すときに必要なアクセス許可) ReflectionPermissionFlag.MemberAccess (関連する列挙体)
- FileIOPermission (ファイルまたはディレクトリから読み取るためのアクセス許可、またはパス自体の情報に対するアクセス許可) FileIOPermissionAccess.Read 、 FileIOPermissionAccess.PathDiscovery (関連する列挙体)
- WebPermission ("file://" 以外で始まる URI を読み取るために必要なアクセス許可)
- SecurityPermission (証拠が指定されたアセンブリを読み込むために必要なアクセス許可) SecurityPermissionFlag.ControlEvidence (関連する列挙体)
参照
Assembly クラス | Assembly メンバ | System.Reflection 名前空間 | Assembly.Load オーバーロードの一覧 | AssemblyName | LoadFrom