AssemblyBuilder.DefineDynamicModule Metódus

Definíció

Dinamikus modult definiál ebben a szerelvényben.

Túlterhelések

Name Description
DefineDynamicModule(String)

Egy elnevezett átmeneti dinamikus modult határoz meg ebben a szerelvényben.

DefineDynamicModule(String, Boolean)

Definiál egy elnevezett átmeneti dinamikus modult ebben a szerelvényben, és meghatározza, hogy ki kell-e adni a szimbóluminformációkat.

DefineDynamicModule(String, String)

Meghatároz egy megőrizhető dinamikus modult a megadott fájlba mentendő utónévvel. A rendszer nem ad ki szimbóluminformációt.

DefineDynamicModule(String, String, Boolean)

Meghatároz egy megőrizhető dinamikus modult, megadva a modul nevét, annak a fájlnak a nevét, amelybe a modult menteni kívánja, valamint azt, hogy a szimbóluminformációkat az alapértelmezett szimbólumíró használatával kell-e kibocsátani.

DefineDynamicModule(String)

Forrás:
AssemblyBuilder.cs
Forrás:
AssemblyBuilder.cs
Forrás:
AssemblyBuilder.cs
Forrás:
AssemblyBuilder.cs
Forrás:
AssemblyBuilder.cs

Egy elnevezett átmeneti dinamikus modult határoz meg ebben a szerelvényben.

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

Paraméterek

name
String

A dinamikus modul neve.

Válaszok

A ModuleBuilder definiált dinamikus modult jelképező elem.

Kivételek

name üres szóközzel kezdődik.

-vagy-

A hossz name nulla.

-vagy-

A hossz name nagyobb, mint a rendszer által definiált maximális hossz.

-vagy-

csak .NET keretrendszer: Ebben a szerelvényben már definiáltak egy azonos name modult.

name az null.

.NET Core és .NET 5+: Ebben a szerelvényben már definiáltak egy dinamikus modult.

A hívó nem rendelkezik a szükséges engedéllyel.

Az alapértelmezett szimbólumíró szerelvénye nem tölthető be.

-vagy-

Az alapértelmezett szimbólumíró felületet megvalósító típus nem található.

Példák

Az alábbi kód példája bemutatja, hogyan hozhat létre átmeneti dinamikus modult a használatával DefineDynamicModule.

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

Megjegyzések

.NET Core és .NET 5+ csak: Multi-modul szerelvények nem támogatottak. Egy szerelvényben csak egy dinamikus modul definiálható.

csak .NET keretrendszer: Hiba több azonos nevű dinamikus modult definiálni egy szerelvényben.

A definiált dinamikus modul átmeneti. A rendszer nem menti a dinamikus modult, még akkor sem, ha a szülő dinamikus szerelvény a következővel RunAndSavelett létrehozva: .

Note

Ha el szeretné tiltani a dinamikus modulok hibakeresése során az optimalizálásokat, a hívás DebuggableAttributeelőtt alkalmazza az DefineDynamicModule attribútumot a dinamikus szerelvényre. Hozzon létre egy példányt DebuggableAttribute a DisableOptimizations jelölővel, és alkalmazza a SetCustomAttribute metódussal. Az attribútumot a dinamikus szerelvényre kell alkalmazni. Nincs hatása, ha a modulra alkalmazza.

A következőre érvényes:

DefineDynamicModule(String, Boolean)

Definiál egy elnevezett átmeneti dinamikus modult ebben a szerelvényben, és meghatározza, hogy ki kell-e adni a szimbóluminformációkat.

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

Paraméterek

name
String

A dinamikus modul neve.

emitSymbolInfo
Boolean

trueha szimbóluminformációt kell kibocsátani; egyéb esetben. false

Válaszok

A ModuleBuilder definiált dinamikus modult jelképező elem.

Kivételek

name üres szóközzel kezdődik.

-vagy-

A hossz name nulla.

-vagy-

A hossz name nagyobb, mint a rendszer által definiált maximális hossz.

name az null.

Az alapértelmezett szimbólumíró szerelvénye nem tölthető be.

-vagy-

Az alapértelmezett szimbólumíró felületet megvalósító típus nem található.

A hívó nem rendelkezik a szükséges engedéllyel.

Példák

Az alábbi kód példája bemutatja, hogyan hozhat létre átmeneti dinamikus modult DefineDynamicModulea szimbóluminformációk letiltásával.

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)

Megjegyzések

Hiba több azonos nevű dinamikus modult definiálni egy szerelvényben.

A rendszer nem menti a dinamikus modult, még akkor sem, ha a szülő dinamikus szerelvény a következővel RunAndSavelett létrehozva: .

Note

Ha el szeretné tiltani a dinamikus modulok hibakeresése során az optimalizálásokat, a hívás DebuggableAttributeelőtt alkalmazza az DefineDynamicModule attribútumot a dinamikus szerelvényre. Hozzon létre egy példányt DebuggableAttribute a DisableOptimizations jelölővel, és alkalmazza a SetCustomAttribute metódussal. Az attribútumot a dinamikus szerelvényre kell alkalmazni. Nincs hatása, ha a modulra alkalmazza.

A következőre érvényes:

DefineDynamicModule(String, String)

Meghatároz egy megőrizhető dinamikus modult a megadott fájlba mentendő utónévvel. A rendszer nem ad ki szimbóluminformációt.

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

Paraméterek

name
String

A dinamikus modul neve.

fileName
String

Annak a fájlnak a neve, amelyhez a dinamikus modult menteni kell.

Válaszok

A ModuleBuilder definiált dinamikus modult képviselő objektum.

Kivételek

name vagy fileName az null.

A hossz vagy namefileName nulla.

-vagy-

A hossz name nagyobb, mint a rendszer által definiált maximális hossz.

-vagy-

fileName elérésiút-specifikációt (például könyvtárösszetevőt) tartalmaz.

-vagy-

Ütközés van a szerelvényhez tartozó másik fájl nevével.

Ezt a szerelvényt korábban mentettük.

Ez a szerelvény egy attribútummal rendelkező Run dinamikus szerelvényre lett meghívva.

A hívó nem rendelkezik a szükséges engedéllyel.

Az alapértelmezett szimbólumíró szerelvénye nem tölthető be.

-vagy-

Az alapértelmezett szimbólumíró felületet megvalósító típus nem található.

Példák

Az alábbi kód példája bemutatja, hogyan hozhat létre állandó dinamikus modult a használatával 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")

Megjegyzések

Egy megőrizhető dinamikus modul definiálásához létre kell hozni ezt a szerelvényt az vagy az SaveRunAndSave attribútummal.

Ha azt szeretné, hogy a modul tartalmazza a szerelvényjegyzéket, name a szerelvény nevével (vagyis a AssemblyName.Name dinamikus szerelvény létrehozásához használt tulajdonságával AssemblyName ) azonosnak kell lennie, és fileName meg kell egyeznie a szerelvény mentésekor megadott fájlnévvel.

Egy csak egy modult tartalmazó szerelvényben az adott modulnak tartalmaznia kell a szerelvényjegyzéket.

Note

Ha el szeretné tiltani a dinamikus modulok hibakeresése során az optimalizálásokat, a hívás DebuggableAttributeelőtt alkalmazza az DefineDynamicModule attribútumot a dinamikus szerelvényre. Hozzon létre egy példányt DebuggableAttribute a DisableOptimizations jelölővel, és alkalmazza a SetCustomAttribute metódussal. Az attribútumot a dinamikus szerelvényre kell alkalmazni. Nincs hatása, ha a modulra alkalmazza.

A következőre érvényes:

DefineDynamicModule(String, String, Boolean)

Meghatároz egy megőrizhető dinamikus modult, megadva a modul nevét, annak a fájlnak a nevét, amelybe a modult menteni kívánja, valamint azt, hogy a szimbóluminformációkat az alapértelmezett szimbólumíró használatával kell-e kibocsátani.

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

Paraméterek

name
String

A dinamikus modul neve.

fileName
String

Annak a fájlnak a neve, amelyhez a dinamikus modult menteni kell.

emitSymbolInfo
Boolean

Ha true, a szimbolikus információk az alapértelmezett szimbólumíróval lesznek megírva.

Válaszok

A ModuleBuilder definiált dinamikus modult képviselő objektum.

Kivételek

name vagy fileName az null.

A hossz vagy namefileName nulla.

-vagy-

A hossz name nagyobb, mint a rendszer által definiált maximális hossz.

-vagy-

fileName elérésiút-specifikációt (például könyvtárösszetevőt) tartalmaz.

-vagy-

Ütközés van a szerelvényhez tartozó másik fájl nevével.

Ezt a szerelvényt korábban mentettük.

Ez a szerelvény egy dinamikus szerelvényen lett meghívva az Run attribútummal.

Az alapértelmezett szimbólumíró szerelvénye nem tölthető be.

-vagy-

Az alapértelmezett szimbólumíró felületet megvalósító típus nem található.

A hívó nem rendelkezik a szükséges engedéllyel.

Példák

Az alábbi kód példája bemutatja, hogyan hozhat létre állandó dinamikus modult szimbólumkibocsátással a használatával 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. 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)

Megjegyzések

Egy megőrizhető dinamikus modul definiálásához létre kell hozni ezt a szerelvényt az vagy az SaveRunAndSave attribútummal.

Ha azt szeretné, hogy a modul tartalmazza a szerelvényjegyzéket, name a szerelvény nevével (vagyis a AssemblyName.Name dinamikus szerelvény létrehozásához használt tulajdonságával AssemblyName ) azonosnak kell lennie, és fileName meg kell egyeznie a szerelvény mentésekor megadott fájlnévvel.

Egy csak egy modult tartalmazó szerelvényben az adott modulnak tartalmaznia kell a szerelvényjegyzéket.

Note

Ha el szeretné tiltani a dinamikus modulok hibakeresése során az optimalizálásokat, a hívás DebuggableAttributeelőtt alkalmazza az DefineDynamicModule attribútumot a dinamikus szerelvényre. Hozzon létre egy példányt DebuggableAttribute a DisableOptimizations jelölővel, és alkalmazza a SetCustomAttribute metódussal. Az attribútumot a dinamikus szerelvényre kell alkalmazni. Nincs hatása, ha a modulra alkalmazza.

A következőre érvényes: