AssemblyBuilder.DefineDynamicModule Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert ein dynamisches Modul in dieser Assembly.
Überlädt
| Name | Beschreibung |
|---|---|
| DefineDynamicModule(String) |
Definiert ein benanntes vorübergehendes dynamisches Modul in dieser Assembly. |
| DefineDynamicModule(String, Boolean) |
Definiert ein benanntes vorübergehendes dynamisches Modul in dieser Assembly und gibt an, ob Symbolinformationen ausgegeben werden sollen. |
| DefineDynamicModule(String, String) |
Definiert ein persistentes dynamisches Modul mit dem angegebenen Namen, der in der angegebenen Datei gespeichert wird. Es werden keine Symbolinformationen ausgegeben. |
| DefineDynamicModule(String, String, Boolean) |
Definiert ein persistentes dynamisches Modul, das den Modulnamen angibt, den Namen der Datei, in der das Modul gespeichert wird, und ob Symbolinformationen mithilfe des Standardsymbolschreibers ausgegeben werden sollen. |
DefineDynamicModule(String)
- Quelle:
- AssemblyBuilder.cs
- Quelle:
- AssemblyBuilder.cs
- Quelle:
- AssemblyBuilder.cs
- Quelle:
- AssemblyBuilder.cs
- Quelle:
- AssemblyBuilder.cs
Definiert ein benanntes vorübergehendes dynamisches Modul in dieser Assembly.
public:
System::Reflection::Emit::ModuleBuilder ^ DefineDynamicModule(System::String ^ name);
public System.Reflection.Emit.ModuleBuilder DefineDynamicModule(string name);
member this.DefineDynamicModule : string -> System.Reflection.Emit.ModuleBuilder
Public Function DefineDynamicModule (name As String) As ModuleBuilder
Parameter
- name
- String
Der Name des dynamischen Moduls.
Gibt zurück
Eine ModuleBuilder Darstellung des definierten dynamischen Moduls.
Ausnahmen
name beginnt mit Leerzeichen.
-oder-
Die Länge von name 0 ist null.
-oder-
Die Länge name ist größer als die vom System definierte maximale Länge.
-oder-
.NET Framework nur: In dieser Assembly wurde bereits ein Modul mit demselben name definiert.
name ist null.
Nur .NET Core und .NET 5+: In dieser Assembly wurde bereits ein dynamisches Modul definiert.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Die Assembly für standardsymbol writer kann nicht geladen werden.
-oder-
Der Typ, der die Standardmäßige Symbol writer-Schnittstelle implementiert, wurde nicht gefunden.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sie mithilfe DefineDynamicModuleeines vorübergehenden dynamischen Moduls ein dynamisches Modul erstellen.
AppDomain myAppDomain = Thread.GetDomain();
AssemblyName myAsmName = new AssemblyName();
myAsmName.Name = "MyAssembly";
AssemblyBuilder myAsmBuilder = myAppDomain.DefineDynamicAssembly(
myAsmName,
AssemblyBuilderAccess.Run);
// Create a transient dynamic module. Since no DLL name is specified with
// this constructor, it can not be saved.
ModuleBuilder myModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule1");
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 transient dynamic module. Since no DLL name is specified with
' this constructor, it can not be saved.
Dim myModuleBuilder As ModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule1")
Hinweise
Nur .NET Core und .NET 5+ werden unterstützt: Assemblys mit mehreren Modulen werden nicht unterstützt. In einer Assembly kann nur ein dynamisches Modul definiert werden.
.NET Framework nur: Es ist ein Fehler, mehrere dynamische Module mit demselben Namen in einer Assembly zu definieren.
Das definierte dynamische Modul ist vorübergehend. Das dynamische Modul wird nicht gespeichert, auch wenn die übergeordnete dynamische Assembly mit RunAndSave.
Anmerkung
Um Optimierungen beim Debuggen dynamischer Module zu unterdrücken, wenden Sie das DebuggableAttribute Attribut vor dem Aufrufen DefineDynamicModuleauf die dynamische Assembly an. Erstellen Sie eine Instanz mit DebuggableAttribute dem DisableOptimizations Flag, und wenden Sie sie mithilfe der SetCustomAttribute Methode an. Das Attribut muss auf die dynamische Assembly angewendet werden. Sie hat keine Auswirkung, wenn sie auf das Modul angewendet wird.
Gilt für:
DefineDynamicModule(String, Boolean)
Definiert ein benanntes vorübergehendes dynamisches Modul in dieser Assembly und gibt an, ob Symbolinformationen ausgegeben werden sollen.
public:
System::Reflection::Emit::ModuleBuilder ^ DefineDynamicModule(System::String ^ name, bool emitSymbolInfo);
public System.Reflection.Emit.ModuleBuilder DefineDynamicModule(string name, bool emitSymbolInfo);
member this.DefineDynamicModule : string * bool -> System.Reflection.Emit.ModuleBuilder
Public Function DefineDynamicModule (name As String, emitSymbolInfo As Boolean) As ModuleBuilder
Parameter
- name
- String
Der Name des dynamischen Moduls.
- emitSymbolInfo
- Boolean
truewenn Symbolinformationen ausgegeben werden sollen; andernfalls . false
Gibt zurück
Eine ModuleBuilder Darstellung des definierten dynamischen Moduls.
Ausnahmen
name beginnt mit Leerzeichen.
-oder-
Die Länge von name 0 ist null.
-oder-
Die Länge name ist größer als die vom System definierte maximale Länge.
name ist null.
Die Assembly für standardsymbol writer kann nicht geladen werden.
-oder-
Der Typ, der die Standardmäßige Symbol writer-Schnittstelle implementiert, wurde nicht gefunden.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sie mithilfe von Symbolinformationen ein vorübergehendes dynamisches Modul erstellen DefineDynamicModule, das Symbolinformationen unterdrückt.
AppDomain myAppDomain = Thread.GetDomain();
AssemblyName myAsmName = new AssemblyName();
myAsmName.Name = "MyAssembly";
AssemblyBuilder myAsmBuilder = myAppDomain.DefineDynamicAssembly(
myAsmName,
AssemblyBuilderAccess.Run);
// Create a transient dynamic module. Since no DLL name is specified with
// this constructor, it can not be saved. By specifying the second parameter
// of the constructor as false, we can suppress the emission of symbol info.
ModuleBuilder myModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule2",
false);
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 transient dynamic module. Since no DLL name is specified with
' this constructor, it can not be saved. By specifying the second parameter
' of the constructor as false, we can suppress the emission of symbol info.
Dim myModuleBuilder As ModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule2", _
False)
Hinweise
Fehler beim Definieren mehrerer dynamischer Module mit demselben Namen in einer Assembly.
Das dynamische Modul wird nicht gespeichert, auch wenn die übergeordnete dynamische Assembly mit RunAndSave.
Anmerkung
Um Optimierungen beim Debuggen dynamischer Module zu unterdrücken, wenden Sie das DebuggableAttribute Attribut vor dem Aufrufen DefineDynamicModuleauf die dynamische Assembly an. Erstellen Sie eine Instanz mit DebuggableAttribute dem DisableOptimizations Flag, und wenden Sie sie mithilfe der SetCustomAttribute Methode an. Das Attribut muss auf die dynamische Assembly angewendet werden. Sie hat keine Auswirkung, wenn sie auf das Modul angewendet wird.
Gilt für:
DefineDynamicModule(String, String)
Definiert ein persistentes dynamisches Modul mit dem angegebenen Namen, der in der angegebenen Datei gespeichert wird. Es werden keine Symbolinformationen ausgegeben.
public:
System::Reflection::Emit::ModuleBuilder ^ DefineDynamicModule(System::String ^ name, System::String ^ fileName);
public System.Reflection.Emit.ModuleBuilder DefineDynamicModule(string name, string fileName);
member this.DefineDynamicModule : string * string -> System.Reflection.Emit.ModuleBuilder
Public Function DefineDynamicModule (name As String, fileName As String) As ModuleBuilder
Parameter
- name
- String
Der Name des dynamischen Moduls.
- fileName
- String
Der Name der Datei, in der das dynamische Modul gespeichert werden soll.
Gibt zurück
Ein ModuleBuilder Objekt, das das definierte dynamische Modul darstellt.
Ausnahmen
name oder fileName ist null.
Die Länge von name oder fileName ist Null.
-oder-
Die Länge name ist größer als die vom System definierte maximale Länge.
-oder-
fileName enthält eine Pfadspezifikation (z. B. eine Verzeichniskomponente).
-oder-
Es besteht ein Konflikt mit dem Namen einer anderen Datei, die zu dieser Assembly gehört.
Diese Assembly wurde zuvor gespeichert.
Diese Assembly wurde für eine dynamische Assembly mit Run Attribut aufgerufen.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Die Assembly für standardsymbol writer kann nicht geladen werden.
-oder-
Der Typ, der die Standardmäßige Symbol writer-Schnittstelle implementiert, wurde nicht gefunden.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Ein persistentes dynamisches Modul mithilfe von DefineDynamicModule.
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");
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")
Hinweise
Um ein persistentes dynamisches Modul zu definieren, muss diese Assembly mit dem Save Attribut oder dem RunAndSave Attribut erstellt werden.
Wenn das Modul das Assemblymanifest enthalten soll, name sollte mit dem Namen der Assembly identisch sein (d. h. die AssemblyName.Name Eigenschaft der zum Erstellen der AssemblyName dynamischen Assembly verwendeten) und fileName sollte mit dem Dateinamen identisch sein, den Sie beim Speichern der Assembly angeben.
In einer Assembly mit nur einem Modul sollte dieses Modul das Assemblymanifest enthalten.
Anmerkung
Um Optimierungen beim Debuggen dynamischer Module zu unterdrücken, wenden Sie das DebuggableAttribute Attribut vor dem Aufrufen DefineDynamicModuleauf die dynamische Assembly an. Erstellen Sie eine Instanz mit DebuggableAttribute dem DisableOptimizations Flag, und wenden Sie sie mithilfe der SetCustomAttribute Methode an. Das Attribut muss auf die dynamische Assembly angewendet werden. Sie hat keine Auswirkung, wenn sie auf das Modul angewendet wird.
Gilt für:
DefineDynamicModule(String, String, Boolean)
Definiert ein persistentes dynamisches Modul, das den Modulnamen angibt, den Namen der Datei, in der das Modul gespeichert wird, und ob Symbolinformationen mithilfe des Standardsymbolschreibers ausgegeben werden sollen.
public:
System::Reflection::Emit::ModuleBuilder ^ DefineDynamicModule(System::String ^ name, System::String ^ fileName, bool emitSymbolInfo);
public System.Reflection.Emit.ModuleBuilder DefineDynamicModule(string name, string fileName, bool emitSymbolInfo);
member this.DefineDynamicModule : string * string * bool -> System.Reflection.Emit.ModuleBuilder
Public Function DefineDynamicModule (name As String, fileName As String, emitSymbolInfo As Boolean) As ModuleBuilder
Parameter
- name
- String
Der Name des dynamischen Moduls.
- fileName
- String
Der Name der Datei, in der das dynamische Modul gespeichert werden soll.
- emitSymbolInfo
- Boolean
Wenn truesymbolische Informationen mithilfe des Standardsymbolschreibers geschrieben werden.
Gibt zurück
Ein ModuleBuilder Objekt, das das definierte dynamische Modul darstellt.
Ausnahmen
name oder fileName ist null.
Die Länge von name oder fileName ist Null.
-oder-
Die Länge name ist größer als die vom System definierte maximale Länge.
-oder-
fileName enthält eine Pfadspezifikation (z. B. eine Verzeichniskomponente).
-oder-
Es besteht ein Konflikt mit dem Namen einer anderen Datei, die zu dieser Assembly gehört.
Diese Assembly wurde zuvor gespeichert.
Diese Assembly wurde für eine dynamische Assembly mit dem Run Attribut aufgerufen.
Die Assembly für standardsymbol writer kann nicht geladen werden.
-oder-
Der Typ, der die Standardmäßige Symbol writer-Schnittstelle implementiert, wurde nicht gefunden.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Ein persistentes dynamisches Modul mit Symbolemissionen mithilfe von DefineDynamicModuleSymbolen erstellt wird.
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);
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)
Hinweise
Um ein persistentes dynamisches Modul zu definieren, muss diese Assembly mit dem Save Attribut oder dem RunAndSave Attribut erstellt werden.
Wenn das Modul das Assemblymanifest enthalten soll, name sollte mit dem Namen der Assembly identisch sein (d. h. die AssemblyName.Name Eigenschaft der zum Erstellen der AssemblyName dynamischen Assembly verwendeten) und fileName sollte mit dem Dateinamen identisch sein, den Sie beim Speichern der Assembly angeben.
In einer Assembly mit nur einem Modul sollte dieses Modul das Assemblymanifest enthalten.
Anmerkung
Um Optimierungen beim Debuggen dynamischer Module zu unterdrücken, wenden Sie das DebuggableAttribute Attribut vor dem Aufrufen DefineDynamicModuleauf die dynamische Assembly an. Erstellen Sie eine Instanz mit DebuggableAttribute dem DisableOptimizations Flag, und wenden Sie sie mithilfe der SetCustomAttribute Methode an. Das Attribut muss auf die dynamische Assembly angewendet werden. Sie hat keine Auswirkung, wenn sie auf das Modul angewendet wird.