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
DefineDynamicModule(String) |
Definiert ein benanntes flüchtiges dynamisches Modul in dieser Assembly. |
DefineDynamicModule(String, Boolean) |
Definiert ein benanntes flüchtiges dynamisches Modul in dieser Assembly und gibt an, ob Symbolinformationen ausgegeben werden sollen. |
DefineDynamicModule(String, String) |
Definiert ein dauerhaftes dynamisches Modul mit dem angegebenen Namen, das in der angegebenen Datei gespeichert wird. Es werden keine Symbolinformationen ausgegeben. |
DefineDynamicModule(String, String, Boolean) |
Definiert ein dauerhaftes dynamisches Modul, legt den Modulnamen und den Namen der Datei fest, in der das Modul gespeichert werden soll, und gibt an, ob Symbolinformationen mithilfe des Standardsymbolwriters ausgegeben werden sollen. |
DefineDynamicModule(String)
- Quelle:
- AssemblyBuilder.cs
- Quelle:
- AssemblyBuilder.cs
- Quelle:
- AssemblyBuilder.cs
Definiert ein benanntes flüchtiges 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
Ein ModuleBuilder, das das definierte dynamische Modul darstellt.
Ausnahmen
name
beginnt mit einem Leerzeichen.
- oder -
Die Länge von name
ist 0 (null).
- oder -
Die Länge von name
übersteigt die vom System definierte Höchstlänge.
name
ist null
.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Die Assembly für den Standardsymbolwriter kann nicht geladen werden.
- oder -
Der Typ, der die Schnittstelle des Symbolwriters implementiert, wurde nicht gefunden.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Ein vorübergehendes dynamisches Modul mit erstellt wird DefineDynamicModule
.
AppDomain^ myAppDomain = Thread::GetDomain();
AssemblyName^ myAsmName = gcnew 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 cannot be saved.
ModuleBuilder^ myModuleBuilder = myAsmBuilder->DefineDynamicModule( "MyModule1" );
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
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 RunAndSaveerstellt wurde.
Hinweis
Um Optimierungen beim Debuggen dynamischer Module zu unterdrücken, wenden Sie das DebuggableAttribute Attribut auf die dynamische Assembly an, bevor Sie aufrufen DefineDynamicModule. Create eine instance von DebuggableAttribute mit dem DisableOptimizations Flag aus, und wenden Sie es mithilfe der SetCustomAttribute -Methode an. Das Attribut muss auf die dynamische Assembly angewendet werden. Es hat keine Auswirkung, wenn es auf das Modul angewendet wird.
Hinweis
Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflection Emit.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher abzielen.
Gilt für:
DefineDynamicModule(String, Boolean)
Definiert ein benanntes flüchtiges 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
true
, wenn Symbolinformationen ausgegeben werden sollen, andernfalls false
.
Gibt zurück
Ein ModuleBuilder, das das definierte dynamische Modul darstellt.
Ausnahmen
name
beginnt mit einem Leerzeichen.
- oder -
Die Länge von name
ist 0 (null).
- oder -
Die Länge von name
übersteigt die vom System definierte Höchstlänge.
name
ist null
.
Die Assembly für den Standardsymbolwriter kann nicht geladen werden.
- oder -
Der Typ, der die Schnittstelle des Symbolwriters implementiert, wurde nicht gefunden.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sie ein vorübergehendes dynamisches Modul erstellen, indem DefineDynamicModule
Sie Symbolinformationen unterdrücken.
AppDomain^ myAppDomain = Thread::GetDomain();
AssemblyName^ myAsmName = gcnew 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 );
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
Es ist ein Fehler, mehrere dynamische Module mit demselben Namen in einer Assembly zu definieren.
Das dynamische Modul wird nicht gespeichert, auch wenn die übergeordnete dynamische Assembly mit RunAndSaveerstellt wurde.
Hinweis
Um Optimierungen beim Debuggen dynamischer Module zu unterdrücken, wenden Sie das DebuggableAttribute Attribut auf die dynamische Assembly an, bevor Sie aufrufen DefineDynamicModule. Create eine instance von DebuggableAttribute mit dem DisableOptimizations Flag aus, und wenden Sie es mithilfe der SetCustomAttribute -Methode an. Das Attribut muss auf die dynamische Assembly angewendet werden. Es hat keine Auswirkung, wenn es auf das Modul angewendet wird.
Hinweis
Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflection Emit.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher abzielen.
Gilt für:
DefineDynamicModule(String, String)
Definiert ein dauerhaftes dynamisches Modul mit dem angegebenen Namen, das 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 0 (null).
- oder -
Die Länge von name
übersteigt die vom System definierte Höchstlänge.
- oder -
fileName
enthält eine Pfadangabe (z. B. eine Verzeichniskomponente).
- oder -
Es liegt ein Konflikt mit dem Namen einer anderen Datei vor, die zu dieser Assembly gehört.
Diese Assembly wurde bereits 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 den Standardsymbolwriter kann nicht geladen werden.
- oder -
Der Typ, der die Schnittstelle des Symbolwriters implementiert, wurde nicht gefunden.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sie ein persistentes dynamisches Modul mit DefineDynamicModule
erstellen.
AppDomain^ myAppDomain = Thread::GetDomain();
AssemblyName^ myAsmName = gcnew 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" );
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 RunAndSave erstellt werden.
Wenn das Modul das Assemblymanifest enthalten soll, name
sollte der Name der Assembly (d. h. die AssemblyName.Name Eigenschaft der AssemblyName zum Erstellen der dynamischen Assembly verwendeten) identisch sein und fileName
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.
Hinweis
Um Optimierungen beim Debuggen dynamischer Module zu unterdrücken, wenden Sie das DebuggableAttribute Attribut auf die dynamische Assembly an, bevor Sie aufrufen DefineDynamicModule. Create eine instance von DebuggableAttribute mit dem DisableOptimizations Flag aus, und wenden Sie es mithilfe der SetCustomAttribute -Methode an. Das Attribut muss auf die dynamische Assembly angewendet werden. Es hat keine Auswirkung, wenn es auf das Modul angewendet wird.
Hinweis
Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflection Emit.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher abzielen.
Gilt für:
DefineDynamicModule(String, String, Boolean)
Definiert ein dauerhaftes dynamisches Modul, legt den Modulnamen und den Namen der Datei fest, in der das Modul gespeichert werden soll, und gibt an, ob Symbolinformationen mithilfe des Standardsymbolwriters 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
Bei true
werden Symbolinformationen mithilfe des Standardsymbolwriters geschrieben.
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 0 (null).
- oder -
Die Länge von name
übersteigt die vom System definierte Höchstlänge.
- oder -
fileName
enthält eine Pfadangabe (z. B. eine Verzeichniskomponente).
- oder -
Es liegt ein Konflikt mit dem Namen einer anderen Datei vor, die zu dieser Assembly gehört.
Diese Assembly wurde bereits gespeichert.
Diese Assembly wurde für eine dynamische Assembly mit dem Run-Attribut aufgerufen.
Die Assembly für den Standardsymbolwriter kann nicht geladen werden.
- oder -
Der Typ, der die Schnittstelle des Symbolwriters 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 Symbolemission mithilfe DefineDynamicModule
von erstellt wird.
AppDomain^ myAppDomain = Thread::GetDomain();
AssemblyName^ myAsmName = gcnew 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 );
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 RunAndSave erstellt werden.
Wenn das Modul das Assemblymanifest enthalten soll, name
sollte mit dem Namen der Assembly identisch sein (d. h. die AssemblyName.Name -Eigenschaft von, die AssemblyName zum Erstellen der dynamischen Assembly verwendet wird) und fileName
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.
Hinweis
Um Optimierungen beim Debuggen dynamischer Module zu unterdrücken, wenden Sie das DebuggableAttribute Attribut auf die dynamische Assembly an, bevor Sie aufrufen DefineDynamicModule. Create eine instance von DebuggableAttribute mit dem DisableOptimizations Flag aus, und wenden Sie es mithilfe der SetCustomAttribute -Methode an. Das Attribut muss auf die dynamische Assembly angewendet werden. Es hat keine Auswirkung, wenn es auf das Modul angewendet wird.
Hinweis
Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflektionsausgabe.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher ausgerichtet sein.
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für