次の方法で共有


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

指定したファイルに保存される指定した名前の持続可能動的モジュールを定義します。シンボル情報は作成されません。

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

パラメータ

  • name
    動的モジュールの名前。長さは 260 文字未満にする必要があります。
  • fileName
    動的モジュールを保存するファイルの名前。

戻り値

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

例外

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

または

name の長さが 260 以上です。

または

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

または

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

InvalidOperationException このアセンブリは既に保存されています。
NotSupportedException このアセンブリは、 Run 属性の動的アセンブリで呼び出されています。
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.
Dim myModuleBuilder As ModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule3", _
                              "MyModule3.dll")

[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.
ModuleBuilder myModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule3",
                                 "MyModule3.dll");

[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.
ModuleBuilder*  myModuleBuilder = myAsmBuilder->DefineDynamicModule(S"MyModule3",
   S"MyModule3.dll");

[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 オーバーロードの一覧