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 セキュリティ:
- ReflectionPermission SecurityAction.Demand、ReflectionEmit=true
- ReflectionPermission (Type.InvokeMember などの機構を通じて遅延バインディングで呼び出すときに必要なアクセス許可) ReflectionPermissionFlag.MemberAccess (関連する列挙体)
- FileIOPermission Write=true または Append=true (モジュールを保存するために必要)
参照
AssemblyBuilder クラス | AssemblyBuilder メンバ | System.Reflection.Emit 名前空間 | AssemblyBuilder.DefineDynamicModule オーバーロードの一覧