Assembly.LoadFrom メソッド (String)
ファイル名またはパスを指定してアセンブリを読み込みます。
Overloads Public Shared Function LoadFrom( _
ByVal assemblyFile As String _) As Assembly
[C#]
public static Assembly LoadFrom(stringassemblyFile);
[C++]
public: static Assembly* LoadFrom(String* assemblyFile);
[JScript]
public static function LoadFrom(
assemblyFile : String) : Assembly;
パラメータ
- assemblyFile
アセンブリのマニフェストを格納しているファイルの名前またはパス。
戻り値
読み込み済みのアセンブリ。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | assemblyFile が null 参照 (Visual Basic では Nothing) です。 |
FileNotFoundException | assemblyFile が見つかりません。または、読み込もうとしているモジュールのファイル名拡張子が指定されていません。 |
BadImageFormatException | assemblyFile が有効なアセンブリではありません。 |
SecurityException | "file://" 以外で始まるコードベースが指定されましたが、必要な WebPermission がありません。 |
PathTooLongException | 1 つのアセンブリまたはモジュールが、2 つの異なる証拠で 2 回読み込まれました。または、アセンブリ名が MAX_PATH 文字数よりも長くなっています。 |
ArgumentException | assemblyFile パラメータが空の文字列 ("") です。 |
解説
assemblyFile パラメータは、エスケープ文字なしの URI を参照する必要があります。このメソッドでは、URI 内のすべての無効な文字に対してエスケープ文字が与えられます。
assemblyFile は、現在のディレクトリからの相対パスです。アセンブリは、呼び出し元のドメインに読み込まれます。
LoadFrom メソッドは読み込みコンテキストを使用し、 LoadFrom を使用してアプリケーションによって読み込まれるアセンブリの推移的閉包である一連のアセンブリについて、アセンブリ名とアセンブリ インスタンス情報を記録します。 LoadFrom 読み込みコンテキストは、位置を使用して読み込まれるアセンブリに対して適用されます。
特定のアクセス許可がアセンブリに与えられるかどうかは、証拠を基に判断されます。アセンブリおよびセキュリティの証拠のマージの規則は次のとおりです。
- Evidence パラメータなしで LoadFrom メソッドを使用した場合は、ローダーが提供した証拠でアセンブリが読み込まれます。
- Evidence パラメータ付きで LoadFrom メソッドを使用した場合は、証拠がマージされます。 LoadFrom メソッドの引数として提供された証拠は、ローダーによって提供された証拠の代わりとして使用されます。
- Byte[] パラメータ付きで LoadFrom メソッドを使用して COFF (Common Object File Format) イメージを読み込んだ場合、証拠は結合されます。 Zone 、 Url および Site は呼び出し元のアセンブリから継承され、 Hash および StrongName は COFF アセンブリから取得されます。
- Byte[] パラメータおよび Evidence 付きで LoadFrom メソッドを使用して COFF (Common Object File Format) イメージを読み込んだ場合、指定された証拠だけが使用されます。呼び出し元のアセンブリの証拠および COFF イメージの証拠は無視されます。
使用例
ファイル名またはパスを指定してアセンブリを読み込む例を次に示します。
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
Dim Param As ParameterInfo
For Each 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()))
Next Param
[C#]
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());
}
[C++]
Assembly* SampleAssembly;
SampleAssembly = Assembly::LoadFrom(S"c:\\Sample.Assembly.dll");
// Obtain a reference to a method known to exist in assembly.
MethodInfo* Method = SampleAssembly->GetTypes()[0]->GetMethod(S"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
IEnumerator* myEnum = Params->GetEnumerator();
while (myEnum->MoveNext()) {
ParameterInfo* Param = __try_cast<ParameterInfo*>(myEnum->Current);
Console::WriteLine(S"Param= {0}", Param->Name);
Console::WriteLine(S" Type= {0}", Param->ParameterType);
Console::WriteLine(S" Position= {0}", __box(Param->Position));
Console::WriteLine(S" Optional= {0}", __box(Param->IsOptional));
}
[JScript]
var SampleAssembly : Assembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
// Obtain a reference to a method known to exist in assembly.
var Method : MethodInfo = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
var Params : ParameterInfo[] = Method.GetParameters();
// Display information about method parameters.
// Param = sParam1
// Type = System.String
// Position = 0
// Optional=False
for (var i : int in Params){
var Param : ParameterInfo = Params[i];
Console.WriteLine("Param=" + Param.Name.ToString());
Console.WriteLine(" Type=" + Param.ParameterType.ToString());
Console.WriteLine(" Position=" + Param.Position.ToString());
Console.WriteLine(" Optional=" + Param.IsOptional.ToString());
}
必要条件
プラットフォーム: 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
.NET Framework セキュリティ:
- ReflectionPermission (Type.InvokeMember などの機構を通じて遅延バインディングで呼び出すときに必要なアクセス許可) ReflectionPermissionFlag.MemberAccess (関連する列挙体)
- FileIOPermission ("file://" で始まる URI を読み取るために必要なアクセス許可) FileIOPermissionAccess.Read (関連する列挙体)
- WebPermission ("file://" 以外で始まる URI を読み取るために必要なアクセス許可)
参照
Assembly クラス | Assembly メンバ | System.Reflection 名前空間 | Assembly.LoadFrom オーバーロードの一覧