AssemblyBuilder.DefineDynamicModule AssemblyBuilder.DefineDynamicModule AssemblyBuilder.DefineDynamicModule AssemblyBuilder.DefineDynamicModule Method

Definizione

Definisce un modulo dinamico nell'assembly.Defines a dynamic module in this assembly.

Overload

DefineDynamicModule(String) DefineDynamicModule(String) DefineDynamicModule(String) DefineDynamicModule(String)

Definisce un modulo dinamico temporaneo denominato nell'assembly.Defines a named transient dynamic module in this assembly.

DefineDynamicModule(String, Boolean) DefineDynamicModule(String, Boolean) DefineDynamicModule(String, Boolean) DefineDynamicModule(String, Boolean)

Definisce un modulo dinamico temporaneo denominato nell'assembly e specifica se le informazioni sui simboli devono essere emesse.Defines a named transient dynamic module in this assembly and specifies whether symbol information should be emitted.

DefineDynamicModule(String, String) DefineDynamicModule(String, String) DefineDynamicModule(String, String) DefineDynamicModule(String, String)

Definisce un modulo dinamico persistente con il nome dato che verrà salvato nel file specificato.Defines a persistable dynamic module with the given name that will be saved to the specified file. Non viene emessa alcuna informazione sui simboli.No symbol information is emitted.

DefineDynamicModule(String, String, Boolean) DefineDynamicModule(String, String, Boolean) DefineDynamicModule(String, String, Boolean) DefineDynamicModule(String, String, Boolean)

Definisce un modulo dinamico persistente, specificando il nome del modulo, il nome del file in cui modulo verrà salvato e la creazione delle informazioni sui simboli tramite il writer dei simboli predefinito.Defines a persistable dynamic module, specifying the module name, the name of the file to which the module will be saved, and whether symbol information should be emitted using the default symbol writer.

DefineDynamicModule(String) DefineDynamicModule(String) DefineDynamicModule(String) DefineDynamicModule(String)

Definisce un modulo dinamico temporaneo denominato nell'assembly.Defines a named transient dynamic module in this 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

Parametri

name
String String String String

Nome del modulo dinamico.The name of the dynamic module.

Restituisce

Oggetto ModuleBuilder che rappresenta il modulo dinamico definito.A ModuleBuilder representing the defined dynamic module.

Eccezioni

name inizia con uno spazio vuoto.name begins with white space.

-oppure--or- La lunghezza di name è zero.The length of name is zero.

-oppure--or- La lunghezza di name è maggiore della lunghezza massima definita nel sistema.The length of name is greater than the system-defined maximum length.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

L'assembly per il writer di simboli predefinito non può essere caricato.The assembly for default symbol writer cannot be loaded.

-oppure--or-

Non è possibile trovare il tipo che implementa l'interfaccia del writer di simboli predefinito.The type that implements the default symbol writer interface cannot be found.

Esempi

[Visual Basic, C#][Visual Basic, C#]

L'esempio di codice seguente illustra come creare un modulo dinamico temporaneo usando DefineDynamicModule.The code example below demonstrates how to create a transient dynamic module using 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")

Commenti

È un errore definire più moduli dinamici con lo stesso nome in un assembly.It is an error to define multiple dynamic modules with the same name in an assembly.

Il modulo dinamico definito è temporaneo.The defined dynamic module is transient. Il modulo dinamico non viene salvato, anche se l'assembly dinamico padre è stato creato RunAndSavecon.The dynamic module is not saved, even if the parent dynamic assembly was created with RunAndSave.

Nota

Per disattivare le ottimizzazioni durante il debug dei moduli dinamici DebuggableAttribute , applicare l'attributo all'assembly dinamico DefineDynamicModuleprima di chiamare.To suppress optimizations when debugging dynamic modules, apply the DebuggableAttribute attribute to the dynamic assembly before calling DefineDynamicModule. Creare un'istanza di DebuggableAttribute con il DisableOptimizations flag e applicarla utilizzando il SetCustomAttribute metodo.Create an instance of DebuggableAttribute with the DisableOptimizations flag and apply it using the SetCustomAttribute method. L'attributo deve essere applicato all'assembly dinamico.The attribute must be applied to the dynamic assembly. Non ha alcun effetto se applicato al modulo.It has no effect if applied to the module.

Nota

A partire da .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this member no longer requires ReflectionPermission with the ReflectionPermissionFlag.ReflectionEmit flag. Vedere problemi di sicurezza nella reflection emit. Per usare questa funzionalità, l'applicazione deve essere destinata a .NET Framework 3.5.NET Framework 3.5 o versione successiva.(See Security Issues in Reflection Emit.) To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

Sicurezza

ReflectionPermission
Quando viene richiamato ad associazione tardiva tramite InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])meccanismi come.when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). Enumerazione associata: MemberAccess.Associated enumeration: MemberAccess.

DefineDynamicModule(String, Boolean) DefineDynamicModule(String, Boolean) DefineDynamicModule(String, Boolean) DefineDynamicModule(String, Boolean)

Definisce un modulo dinamico temporaneo denominato nell'assembly e specifica se le informazioni sui simboli devono essere emesse.Defines a named transient dynamic module in this assembly and specifies whether symbol information should be emitted.

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

Parametri

name
String String String String

Nome del modulo dinamico.The name of the dynamic module.

emitSymbolInfo
Boolean Boolean Boolean Boolean

true se devono essere emesse le informazioni sui simboli; in caso contrario, false.true if symbol information is to be emitted; otherwise, false.

Restituisce

Oggetto ModuleBuilder che rappresenta il modulo dinamico definito.A ModuleBuilder representing the defined dynamic module.

Eccezioni

name inizia con uno spazio vuoto.name begins with white space.

-oppure--or- La lunghezza di name è zero.The length of name is zero.

-oppure--or- La lunghezza di name è maggiore della lunghezza massima definita nel sistema.The length of name is greater than the system-defined maximum length.

L'assembly per il writer di simboli predefinito non può essere caricato.The assembly for default symbol writer cannot be loaded.

-oppure--or-

Non è possibile trovare il tipo che implementa l'interfaccia del writer di simboli predefinito.The type that implements the default symbol writer interface cannot be found.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Esempi

[Visual Basic, C#][Visual Basic, C#]

Nell'esempio di codice seguente viene illustrato come creare un modulo dinamico temporaneo DefineDynamicModuleutilizzando, evitando le informazioni sui simboli.The code example below demonstrates how to create a transient dynamic module using DefineDynamicModule, suppressing symbol information.

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)

Commenti

È un errore definire più moduli dinamici con lo stesso nome in un assembly.It is an error to define multiple dynamic modules with the same name in an assembly.

Il modulo dinamico non viene salvato, anche se l'assembly dinamico padre è stato creato RunAndSavecon.The dynamic module is not saved, even if the parent dynamic assembly was created with RunAndSave.

Nota

Per disattivare le ottimizzazioni durante il debug dei moduli dinamici DebuggableAttribute , applicare l'attributo all'assembly dinamico DefineDynamicModuleprima di chiamare.To suppress optimizations when debugging dynamic modules, apply the DebuggableAttribute attribute to the dynamic assembly before calling DefineDynamicModule. Creare un'istanza di DebuggableAttribute con il DisableOptimizations flag e applicarla utilizzando il SetCustomAttribute metodo.Create an instance of DebuggableAttribute with the DisableOptimizations flag and apply it using the SetCustomAttribute method. L'attributo deve essere applicato all'assembly dinamico.The attribute must be applied to the dynamic assembly. Non ha alcun effetto se applicato al modulo.It has no effect if applied to the module.

Nota

A partire da .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this member no longer requires ReflectionPermission with the ReflectionPermissionFlag.ReflectionEmit flag. Vedere problemi di sicurezza nella reflection emit. Per usare questa funzionalità, l'applicazione deve essere destinata a .NET Framework 3.5.NET Framework 3.5 o versione successiva.(See Security Issues in Reflection Emit.) To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

Sicurezza

ReflectionPermission
Quando viene richiamato ad associazione tardiva tramite InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])meccanismi come.when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). Enumerazione associata: MemberAccess.Associated enumeration: MemberAccess.

DefineDynamicModule(String, String) DefineDynamicModule(String, String) DefineDynamicModule(String, String) DefineDynamicModule(String, String)

Definisce un modulo dinamico persistente con il nome dato che verrà salvato nel file specificato.Defines a persistable dynamic module with the given name that will be saved to the specified file. Non viene emessa alcuna informazione sui simboli.No symbol information is emitted.

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

Parametri

name
String String String String

Nome del modulo dinamico.The name of the dynamic module.

fileName
String String String String

Nome del file in cui salvare il modulo dinamico.The name of the file to which the dynamic module should be saved.

Restituisce

Oggetto ModuleBuilder che rappresenta il modulo dinamico definito.A ModuleBuilder object representing the defined dynamic module.

Eccezioni

La lunghezza di name o fileName è zero.The length of name or fileName is zero.

-oppure--or- La lunghezza di name è maggiore della lunghezza massima definita nel sistema.The length of name is greater than the system-defined maximum length.

-oppure--or- fileName contiene una specifica di percorso, ad esempio un componente di directory.fileName contains a path specification (a directory component, for example).

-oppure--or- Si verifica un conflitto con il nome di un altro file che appartiene all'assembly.There is a conflict with the name of another file that belongs to this assembly.

Questo assembly è stato salvato in precedenza.This assembly has been previously saved.

L'assembly è stato chiamato su un assembly dinamico, mediante l'attributo Run.This assembly was called on a dynamic assembly with Run attribute.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

L'assembly per il writer di simboli predefinito non può essere caricato.The assembly for default symbol writer cannot be loaded.

In alternativa-or-

Non è possibile trovare il tipo che implementa l'interfaccia del writer di simboli predefinito.The type that implements the default symbol writer interface cannot be found.

Esempi

[Visual Basic, C#][Visual Basic, C#]

L'esempio di codice seguente illustra come creare un modulo dinamico persistente DefineDynamicModuleusando.The code example below demonstrates how to create a persistent dynamic module using DefineDynamicModule.

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")

Commenti

Per definire un modulo dinamico permanente, questo assembly deve essere creato con l' Save RunAndSave attributo o.To define a persistable dynamic module, this assembly needs to be created with the Save or the RunAndSave attribute.

Se si desidera che il modulo contenga il manifesto dell' name assembly, deve corrispondere al nome dell'assembly (ovvero la AssemblyName.Name proprietà dell'oggetto AssemblyName utilizzato per creare l'assembly dinamico) e fileName deve essere uguale a nome file specificato quando si salva l'assembly.If you want the module to contain the assembly manifest, name should be the same as the name of the assembly (that is, the AssemblyName.Name property of the AssemblyName used to create the dynamic assembly) and fileName should be the same as the filename you specify when you save the assembly.

In un assembly con un solo modulo, il modulo deve contenere il manifesto dell'assembly.In an assembly with only one module, that module should contain the assembly manifest.

Nota

Per disattivare le ottimizzazioni durante il debug dei moduli dinamici DebuggableAttribute , applicare l'attributo all'assembly dinamico DefineDynamicModuleprima di chiamare.To suppress optimizations when debugging dynamic modules, apply the DebuggableAttribute attribute to the dynamic assembly before calling DefineDynamicModule. Creare un'istanza di DebuggableAttribute con il DisableOptimizations flag e applicarla utilizzando il SetCustomAttribute metodo.Create an instance of DebuggableAttribute with the DisableOptimizations flag and apply it using the SetCustomAttribute method. L'attributo deve essere applicato all'assembly dinamico.The attribute must be applied to the dynamic assembly. Non ha alcun effetto se applicato al modulo.It has no effect if applied to the module.

Nota

A partire da .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this member no longer requires ReflectionPermission with the ReflectionPermissionFlag.ReflectionEmit flag. Vedere problemi di sicurezza nella reflection emit. Per usare questa funzionalità, l'applicazione deve essere destinata a .NET Framework 3.5.NET Framework 3.5 o versione successiva.(See Security Issues in Reflection Emit.) To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

Sicurezza

ReflectionPermission
Quando viene richiamato ad associazione tardiva tramite InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])meccanismi come.when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). Enumerazione associata: MemberAccess.Associated enumeration: MemberAccess.

FileIOPermission
Write = true o Append = true è necessario per salvare il moduloWrite=true or Append=true is needed to save the module

DefineDynamicModule(String, String, Boolean) DefineDynamicModule(String, String, Boolean) DefineDynamicModule(String, String, Boolean) DefineDynamicModule(String, String, Boolean)

Definisce un modulo dinamico persistente, specificando il nome del modulo, il nome del file in cui modulo verrà salvato e la creazione delle informazioni sui simboli tramite il writer dei simboli predefinito.Defines a persistable dynamic module, specifying the module name, the name of the file to which the module will be saved, and whether symbol information should be emitted using the default symbol writer.

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

Parametri

name
String String String String

Nome del modulo dinamico.The name of the dynamic module.

fileName
String String String String

Nome del file con cui deve essere salvato il modulo dinamico.The name of the file to which the dynamic module should be saved.

emitSymbolInfo
Boolean Boolean Boolean Boolean

Se true, le informazioni sui simboli vengono scritte utilizzando il writer di simboli predefinito.If true, symbolic information is written using the default symbol writer.

Restituisce

Oggetto ModuleBuilder che rappresenta il modulo dinamico definito.A ModuleBuilder object representing the defined dynamic module.

Eccezioni

La lunghezza di name o fileName è zero.The length of name or fileName is zero.

-oppure--or- La lunghezza di name è maggiore della lunghezza massima definita nel sistema.The length of name is greater than the system-defined maximum length.

In alternativa-or- fileName contiene una specifica di percorso, ad esempio un componente di directory.fileName contains a path specification (a directory component, for example).

In alternativa-or- Si verifica un conflitto con il nome di un altro file che appartiene all'assembly.There is a conflict with the name of another file that belongs to this assembly.

L'assembly è stato salvato in precedenza.This assembly has been previously saved.

L'assembly è stato chiamato su un assembly dinamico, mediante l'attributo Run.This assembly was called on a dynamic assembly with the Run attribute.

Non è possibile caricare l'assembly per un writer di simboli predefinito.The assembly for default symbol writer cannot be loaded.

In alternativa-or-

Non è possibile trovare il tipo che implementa l'interfaccia del writer di simboli predefinito.The type that implements the default symbol writer interface cannot be found.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Esempi

[Visual Basic, C#][Visual Basic, C#]

Nell'esempio di codice seguente viene illustrato come creare un modulo dinamico persistente con emissione DefineDynamicModuledi simboli utilizzando.The code example below demonstrates how to create a persistent dynamic module with symbol emission using DefineDynamicModule.

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)

Commenti

Per definire un modulo dinamico permanente, questo assembly deve essere creato con l' Save RunAndSave attributo o.To define a persistable dynamic module, this assembly needs to be created with the Save or the RunAndSave attribute.

Se si desidera che il modulo contenga il manifesto dell' name assembly, deve corrispondere al nome dell'assembly (ovvero la AssemblyName.Name proprietà dell'oggetto AssemblyName utilizzato per creare l'assembly dinamico) e fileName deve essere uguale a nome file specificato quando si salva l'assembly.If you want the module to contain the assembly manifest, name should be the same as the name of the assembly (that is, the AssemblyName.Name property of the AssemblyName used to create the dynamic assembly) and fileName should be the same as the filename you specify when you save the assembly.

In un assembly con un solo modulo, il modulo deve contenere il manifesto dell'assembly.In an assembly with only one module, that module should contain the assembly manifest.

Nota

Per disattivare le ottimizzazioni durante il debug dei moduli dinamici DebuggableAttribute , applicare l'attributo all'assembly dinamico DefineDynamicModuleprima di chiamare.To suppress optimizations when debugging dynamic modules, apply the DebuggableAttribute attribute to the dynamic assembly before calling DefineDynamicModule. Creare un'istanza di DebuggableAttribute con il DisableOptimizations flag e applicarla utilizzando il SetCustomAttribute metodo.Create an instance of DebuggableAttribute with the DisableOptimizations flag and apply it using the SetCustomAttribute method. L'attributo deve essere applicato all'assembly dinamico.The attribute must be applied to the dynamic assembly. Non ha alcun effetto se applicato al modulo.It has no effect if applied to the module.

Nota

A partire da .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this member no longer requires ReflectionPermission with the ReflectionPermissionFlag.ReflectionEmit flag. Vedere problemi di sicurezza nella reflection emit. Per usare questa funzionalità, l'applicazione deve essere destinata a .NET Framework 3.5.NET Framework 3.5 o versione successiva.(See Security Issues in Reflection Emit.) To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

Sicurezza

ReflectionPermission
Quando viene richiamato ad associazione tardiva tramite InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])meccanismi come.when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). Enumerazione associata: MemberAccess.Associated enumeration: MemberAccess.

FileIOPermission
Write = true o Append = true è necessario per salvare questo moduloWrite=true or Append=true is needed to save this module

Si applica a