次の方法で共有


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) イメージを読み込んだ場合、証拠は結合されます。 ZoneUrl および 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 セキュリティ:

参照

Assembly クラス | Assembly メンバ | System.Reflection 名前空間 | Assembly.Load オーバーロードの一覧 | AssemblyName | LoadFrom