AssemblyBuilder.DefineDynamicModule Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.