AppDomain.ExecuteAssembly メソッド (String, Evidence, String[], Byte , AssemblyHashAlgorithm)
メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。
指定したファイルに格納されているアセンブリを、指定した証拠と引数を使用して実行します。
Overloads Public Function ExecuteAssembly( _
ByVal assemblyFile As String, _ ByVal assemblySecurity As Evidence, _ ByVal args() As String, _ ByVal hashValue() As Byte, _ ByVal hashAlgorithm As AssemblyHashAlgorithm _) As Integer
[C#]
public int ExecuteAssembly(stringassemblyFile,EvidenceassemblySecurity,string[] args,byte[] hashValue,AssemblyHashAlgorithmhashAlgorithm);
[C++]
public: int ExecuteAssembly(String* assemblyFile,Evidence* assemblySecurity,String* args __gc[],unsigned charhashValue __gc[],AssemblyHashAlgorithmhashAlgorithm);
[JScript]
public function ExecuteAssembly(
assemblyFile : String,assemblySecurity : Evidence,args : String[],hashValue : Byte[],hashAlgorithm : AssemblyHashAlgorithm) : int;
パラメータ
- assemblyFile
実行するアセンブリが格納されているファイルの名前。 - assemblySecurity
アセンブリに指定する証拠。 - args
アセンブリのエントリ ポイントに渡す引数。 - hashValue
計算されたハッシュ コードの値を表します。 - hashAlgorithm
アセンブリ マニフェストが使用するハッシュ アルゴリズムを表します。
戻り値
アセンブリのエントリ ポイントが返す値。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | assemblyFile が null 参照 (Visual Basic では Nothing) です。 |
FileNotFoundException | assemblyFile が見つかりません。 |
BadImageFormatException | assemblyFile が有効なアセンブリではありません。 |
AppDomainUnloadedException | 操作が、アンロードされたアプリケーション ドメインで試行されています。 |
SecurityException | 呼び出し元に、正しいアクセス許可がありません。要件のセクションを参照してください。 |
解説
アセンブリは、.NET Framework ヘッダーに指定されているエントリ ポイントで実行を開始します。
このメソッドでは、新しいプロセスやアプリケーション ドメインは作成しません。また、新しいスレッドでのエントリ ポイント メソッドも実行しません。
使用例
[Visual Basic, C#, C++] 2 つの異なるドメインで ExecuteAssembly のオーバーロードの 1 つを使用する方法を次の例に示します。
Module Test
Sub Main()
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
Dim otherDomain As AppDomain = AppDomain.CreateDomain("otherDomain")
currentDomain.ExecuteAssembly("MyExecutable.exe")
' Prints "MyExecutable running on [default]"
otherDomain.ExecuteAssembly("MyExecutable.exe")
' Prints "MyExecutable running on otherDomain"
End Sub 'Main
End Module 'Test
[C#]
class Test {
public static void Main() {
AppDomain currentDomain = AppDomain.CurrentDomain;
AppDomain otherDomain = AppDomain.CreateDomain("otherDomain");
currentDomain.ExecuteAssembly("MyExecutable.exe");
// Prints "MyExecutable running on [default]"
otherDomain.ExecuteAssembly("MyExecutable.exe");
// Prints "MyExecutable running on otherDomain"
}
}
[C++]
int main() {
AppDomain* currentDomain = AppDomain::CurrentDomain;
AppDomain* otherDomain = AppDomain::CreateDomain(S"otherDomain");
currentDomain->ExecuteAssembly(S"MyExecutable.exe");
// Prints S"MyExecutable running on [default]"
otherDomain->ExecuteAssembly(S"MyExecutable.exe");
// Prints S"MyExecutable running on otherDomain"
}
[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 Framework セキュリティ:
- ReflectionPermission (Type.InvokeMember などの機構を通じて遅延バインディングが呼び出されるときに必要なアクセス許可) ReflectionPermissionFlag.MemberAccess (関連する列挙体)
- SecurityPermission (証拠が指定されたアセンブリを読み込むために必要なアクセス許可) SecurityPermissionFlag.ControlEvidence (関連する列挙体)
- FileIOPermission (ファイルまたはディレクトリから読み取るためのアクセス許可、またはパス自体の情報に対するアクセス許可) FileIOPermissionAccess.Read 、 FileIOPermissionAccess.PathDiscovery (関連する列挙体)
- WebPermission ("file://" 以外で始まる URI を読み取るために必要なアクセス許可)
参照
AppDomain クラス | AppDomain メンバ | System 名前空間 | AppDomain.ExecuteAssembly オーバーロードの一覧