次の方法で共有


AssemblyBuilder.DefineDynamicModule メソッド (String, String, Boolean)

モジュール名、モジュールの保存先ファイルの名前、既定のシンボル ライタを使用してシンボル情報を出力するかどうかを指定して、持続可能動的モジュールを定義します。

Overloads Public Function DefineDynamicModule( _
   ByVal name As String, _   ByVal fileName As String, _   ByVal emitSymbolInfo As Boolean _) As ModuleBuilder
[C#]
public ModuleBuilder DefineDynamicModule(stringname,stringfileName,boolemitSymbolInfo);
[C++]
public: ModuleBuilder* DefineDynamicModule(String* name,String* fileName,boolemitSymbolInfo);
[JScript]
public function DefineDynamicModule(
   name : String,fileName : String,emitSymbolInfo : Boolean) : ModuleBuilder;

パラメータ

  • name
    動的モジュールの名前。長さは 260 文字未満にする必要があります。
  • fileName
    動的モジュールを保存するファイルの名前。
  • emitSymbolInfo
    true の場合は、既定のシンボル ライタを使用してシンボリック情報が書き込まれます。

戻り値

定義する動的モジュールを表す ModuleBuilder オブジェクト。

例外

例外の種類 条件
ArgumentNullException name または fileName が null 参照 (Visual Basic では Nothing) です。
ArgumentException name または fileName の長さが 0 です。

または

name の長さが 260 以上です。

または

fileName にパス指定 (ディレクトリ コンポーネントなど) が含まれています。

または

このアセンブリに属する別のファイルの名前と衝突します。

InvalidOperationException このアセンブリは既に保存されています。
NotSupportedException このアセンブリは、 Run 属性の動的アセンブリで呼び出されています。
ExecutionEngineException 既定のシンボル ライタのアセンブリを読み込むことができません。

または

既定のシンボル ライタ インターフェイスを実装する型が見つかりません。

SecurityException 呼び出し元に、必要なアクセス許可がありません。

解説

持続可能動的モジュールを定義するには、このアセンブリが Save 属性または RunAndSave 属性で作成されている必要があります。

動的アセンブリに複数の動的モジュールが含まれている場合、そのアセンブリのマニフェスト ファイル名は、 DefineDynamicModule の最初の引数に指定されているモジュール名に一致する必要があります。

使用例

DefineDynamicModule を使用して、シンボル出力付きで持続可能動的モジュールを作成する方法を次のコード例に示します。

 
Dim myAppDomain As AppDomain = Thread.GetDomain()
Dim myAsmName As New AssemblyName()
myAsmName.Name = "MyAssembly"
Dim myAsmBuilder As AssemblyBuilder = myAppDomain.DefineDynamicAssembly(myAsmName, _
                      AssemblyBuilderAccess.Run)
' Create a dynamic module that can be saved as the specified DLL name. By
' specifying the third parameter as true, we can allow the emission of symbol info.
Dim myModuleBuilder As ModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule4", _
                              "MyModule4.dll", _
                              True)

[C#] 
AppDomain myAppDomain = Thread.GetDomain(); 
AssemblyName myAsmName = new AssemblyName();
myAsmName.Name = "MyAssembly";
AssemblyBuilder myAsmBuilder = myAppDomain.DefineDynamicAssembly(
                     myAsmName,
                     AssemblyBuilderAccess.Run);
// Create a dynamic module that can be saved as the specified DLL name. By
// specifying the third parameter as true, we can allow the emission of symbol info.
ModuleBuilder myModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule4",
                                 "MyModule4.dll",
                                  true);

[C++] 
AppDomain*  myAppDomain = Thread::GetDomain();
AssemblyName* myAsmName = new AssemblyName();
myAsmName->Name = S"MyAssembly";
AssemblyBuilder*  myAsmBuilder = myAppDomain->DefineDynamicAssembly(myAsmName,
   AssemblyBuilderAccess::Run);
// Create a dynamic module that can be saved as the specified DLL name. By
// specifying the third parameter as true, we can allow the emission of symbol info.
ModuleBuilder*  myModuleBuilder = myAsmBuilder->DefineDynamicModule(S"MyModule4",
   S"MyModule4.dll",
   true);

[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 セキュリティ:

参照

AssemblyBuilder クラス | AssemblyBuilder メンバ | System.Reflection.Emit 名前空間 | AssemblyBuilder.DefineDynamicModule オーバーロードの一覧