AppDomain.DefineDynamicAssembly Metoda

Definice

Definuje dynamické sestavení v aktuální doméně aplikace.

Přetížení

Name Description
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>)
Zastaralé.

Definuje dynamické sestavení se zadaným názvem, režimem přístupu, adresářem úložiště, důkazy, požadavky na oprávnění, možností synchronizace a vlastními atributy.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean)
Zastaralé.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště, důkazů, žádostí o oprávnění a možnosti synchronizace.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet)
Zastaralé.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště, důkazů a žádostí o oprávnění.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet)
Zastaralé.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště a žádostí o oprávnění.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet)
Zastaralé.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, důkazů a žádostí o oprávnění.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště a možnosti synchronizace.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet)
Zastaralé.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu a žádostí o oprávnění.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence)
Zastaralé.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště a důkazů.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource)

Definuje dynamické sestavení se zadaným názvem, režimem přístupu a vlastními atributy a použitím zadaného zdroje pro kontext zabezpečení.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String)

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu a adresáře úložiště.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence)
Zastaralé.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu a důkazů.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)

Definuje dynamické sestavení se zadaným názvem, režimem přístupu a vlastními atributy.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess)

Definuje dynamické sestavení se zadaným názvem a režimem přístupu.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>)

Upozornění

Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Definuje dynamické sestavení se zadaným názvem, režimem přístupu, adresářem úložiště, důkazy, požadavky na oprávnění, možností synchronizace a vlastními atributy.

public:
 System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::String ^ dir, System::Security::Policy::Evidence ^ evidence, System::Security::PermissionSet ^ requiredPermissions, System::Security::PermissionSet ^ optionalPermissions, System::Security::PermissionSet ^ refusedPermissions, bool isSynchronized, System::Collections::Generic::IEnumerable<System::Reflection::Emit::CustomAttributeBuilder ^> ^ assemblyAttributes);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, System.Security.Policy.Evidence evidence, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions, bool isSynchronized, System.Collections.Generic.IEnumerable<System.Reflection.Emit.CustomAttributeBuilder> assemblyAttributes);
[System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, System.Security.Policy.Evidence evidence, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions, bool isSynchronized, System.Collections.Generic.IEnumerable<System.Reflection.Emit.CustomAttributeBuilder> assemblyAttributes);
member this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet * bool * seq<System.Reflection.Emit.CustomAttributeBuilder> -> System.Reflection.Emit.AssemblyBuilder
[<System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
member this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet * bool * seq<System.Reflection.Emit.CustomAttributeBuilder> -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, dir As String, evidence As Evidence, requiredPermissions As PermissionSet, optionalPermissions As PermissionSet, refusedPermissions As PermissionSet, isSynchronized As Boolean, assemblyAttributes As IEnumerable(Of CustomAttributeBuilder)) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim, ve kterém bude dynamické sestavení přístupné.

dir
String

Název adresáře, do kterého se uloží dynamické sestavení. Pokud dir je null, použije se aktuální adresář.

evidence
Evidence

Důkaz, který je dodán pro dynamické sestavení. Důkazy se používají jako konečná sada důkazů používaných k řešení zásad.

requiredPermissions
PermissionSet

Požadovaná žádost o oprávnění.

optionalPermissions
PermissionSet

Nepovinná žádost o oprávnění.

refusedPermissions
PermissionSet

Žádost o odmítnutá oprávnění.

isSynchronized
Boolean

truesynchronizace vytváření modulů, typů a členů v dynamickém sestavení; v opačném případě . false

assemblyAttributes
IEnumerable<CustomAttributeBuilder>

Výčet atributů, které se mají použít na sestavení, nebo null pokud neexistují žádné atributy.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Atributy

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Poznámky

Toto přetížení metody slouží k určení atributů, které nefungují správně, pokud nejsou použity při vytvoření dynamického sestavení. Například atributy zabezpečení, například SecurityTransparentAttribute a SecurityCriticalAttribute nefungují správně, pokud jsou přidány po vytvoření dynamického sestavení.

Požadavky na oprávnění zadané pro requiredPermissionsoptionalPermissions, a refusedPermissions parametry jsou použity pouze v případě, že evidence je parametr také zadán, nebo je-li dynamické sestavení uložena a znovu načtena do paměti.

Note

Při vývoji kódu, který generuje dynamická sestavení, doporučujeme zahrnout SecurityPermissionFlag.SkipVerification příznak do parametru refusedPermissions . Zahrnutí tohoto příznaku zajišťuje ověření Microsoft zprostředkujícího jazyka (MSIL). Tato technika rozpozná neúmyslné generování neověřitelného kódu, což je jinak velmi obtížné zjistit. Omezení této techniky spočívá v tom, že je také vyvolán SecurityException při použití s kódem, který vyžaduje úplný vztah důvěryhodnosti.

Pouze plně důvěryhodní volající mohou poskytnout důkaz při definování dynamické Assembly. Modul runtime mapuje Evidence prostřednictvím zásad zabezpečení, aby určil udělená oprávnění. Částečně důvěryhodní volající musí zadat null parametr evidence . Pokud evidence ano null, modul runtime zkopíruje sady oprávnění (tj. aktuální sady udělení a zamítnutí) ze sestavení volajícího do dynamického sestavení, které je definováno, a označí zásadu jako vyřešenou.

Pokud je dynamické sestavení uloženo na disk, následné načtení získá granty na základě zásad přidružených k umístění, kam bylo dynamické sestavení uloženo.

Pokud isSynchronized je true, následující metody výsledné AssemblyBuilder budou synchronizovány: DefineDynamicModule, DefineResource, AddResourceFile, GetDynamicModule, , SetEntryPoint, a Save. Pokud jsou dvě z těchto metod volány na různých vláknech, jeden bude blokovat, dokud se druhý nedokončí.

Toto přetížení metody je zavedeno v .NET Framework 3.5.

Viz také

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean)

Upozornění

Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště, důkazů, žádostí o oprávnění a možnosti synchronizace.

public:
 virtual System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::String ^ dir, System::Security::Policy::Evidence ^ evidence, System::Security::PermissionSet ^ requiredPermissions, System::Security::PermissionSet ^ optionalPermissions, System::Security::PermissionSet ^ refusedPermissions, bool isSynchronized);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, System.Security.Policy.Evidence evidence, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions, bool isSynchronized);
[System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, System.Security.Policy.Evidence evidence, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions, bool isSynchronized);
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet * bool -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet * bool -> System.Reflection.Emit.AssemblyBuilder
[<System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet * bool -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet * bool -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, dir As String, evidence As Evidence, requiredPermissions As PermissionSet, optionalPermissions As PermissionSet, refusedPermissions As PermissionSet, isSynchronized As Boolean) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim, ve kterém bude dynamické sestavení přístupné.

dir
String

Název adresáře, do kterého se uloží dynamické sestavení. Pokud dir ano null, adresář se ve výchozím nastavení nastaví na aktuální adresář.

evidence
Evidence

Důkaz poskytnutý pro dynamické sestavení. Důkazy se používají jako konečná sada důkazů používaných k řešení zásad.

requiredPermissions
PermissionSet

Požadovaná žádost o oprávnění.

optionalPermissions
PermissionSet

Nepovinná žádost o oprávnění.

refusedPermissions
PermissionSet

Žádost o odmítnutá oprávnění.

isSynchronized
Boolean

truesynchronizace vytváření modulů, typů a členů v dynamickém sestavení; v opačném případě . false

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Implementuje

Atributy

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet)

Upozornění

Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. Please see http://go.microsoft.com/fwlink/?LinkId=155570 for more information.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště, důkazů a žádostí o oprávnění.

public:
 virtual System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::String ^ dir, System::Security::Policy::Evidence ^ evidence, System::Security::PermissionSet ^ requiredPermissions, System::Security::PermissionSet ^ optionalPermissions, System::Security::PermissionSet ^ refusedPermissions);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, System.Security.Policy.Evidence evidence, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions);
[System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default.  Please see http://go.microsoft.com/fwlink/?LinkId=155570 for more information.")]
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, System.Security.Policy.Evidence evidence, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions);
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
[<System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default.  Please see http://go.microsoft.com/fwlink/?LinkId=155570 for more information.")>]
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, dir As String, evidence As Evidence, requiredPermissions As PermissionSet, optionalPermissions As PermissionSet, refusedPermissions As PermissionSet) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim, ve kterém bude dynamické sestavení přístupné.

dir
String

Název adresáře, do kterého se sestavení uloží. Pokud dir ano null, adresář se ve výchozím nastavení nastaví na aktuální adresář.

evidence
Evidence

Důkaz poskytnutý pro dynamické sestavení. Důkazy se používají jako konečná sada důkazů používaných k řešení zásad.

requiredPermissions
PermissionSet

Požadovaná žádost o oprávnění.

optionalPermissions
PermissionSet

Nepovinná žádost o oprávnění.

refusedPermissions
PermissionSet

Žádost o odmítnutá oprávnění.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Implementuje

Atributy

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet)

Upozornění

Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště a žádostí o oprávnění.

public:
 virtual System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::String ^ dir, System::Security::PermissionSet ^ requiredPermissions, System::Security::PermissionSet ^ optionalPermissions, System::Security::PermissionSet ^ refusedPermissions);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions);
[System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions);
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
[<System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, dir As String, requiredPermissions As PermissionSet, optionalPermissions As PermissionSet, refusedPermissions As PermissionSet) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim, ve kterém bude dynamické sestavení přístupné.

dir
String

Název adresáře, do kterého se sestavení uloží. Pokud dir ano null, adresář se ve výchozím nastavení nastaví na aktuální adresář.

requiredPermissions
PermissionSet

Požadovaná žádost o oprávnění.

optionalPermissions
PermissionSet

Nepovinná žádost o oprávnění.

refusedPermissions
PermissionSet

Žádost o odmítnutá oprávnění.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Implementuje

Atributy

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet)

Upozornění

Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, důkazů a žádostí o oprávnění.

public:
 virtual System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::Security::Policy::Evidence ^ evidence, System::Security::PermissionSet ^ requiredPermissions, System::Security::PermissionSet ^ optionalPermissions, System::Security::PermissionSet ^ refusedPermissions);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, System.Security.Policy.Evidence evidence, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions);
[System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, System.Security.Policy.Evidence evidence, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions);
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
[<System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.Policy.Evidence * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, evidence As Evidence, requiredPermissions As PermissionSet, optionalPermissions As PermissionSet, refusedPermissions As PermissionSet) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim, ve kterém bude dynamické sestavení přístupné.

evidence
Evidence

Důkaz poskytnutý pro dynamické sestavení. Důkazy se používají jako konečná sada důkazů používaných k řešení zásad.

requiredPermissions
PermissionSet

Požadovaná žádost o oprávnění.

optionalPermissions
PermissionSet

Nepovinná žádost o oprávnění.

refusedPermissions
PermissionSet

Žádost o odmítnutá oprávnění.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Implementuje

Atributy

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště a možnosti synchronizace.

public:
 System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::String ^ dir, bool isSynchronized, System::Collections::Generic::IEnumerable<System::Reflection::Emit::CustomAttributeBuilder ^> ^ assemblyAttributes);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, bool isSynchronized, System.Collections.Generic.IEnumerable<System.Reflection.Emit.CustomAttributeBuilder> assemblyAttributes);
member this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * bool * seq<System.Reflection.Emit.CustomAttributeBuilder> -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, dir As String, isSynchronized As Boolean, assemblyAttributes As IEnumerable(Of CustomAttributeBuilder)) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim, ve kterém bude dynamické sestavení přístupné.

dir
String

Název adresáře, do kterého se uloží dynamické sestavení. Pokud dir je null, použije se aktuální adresář.

isSynchronized
Boolean

truesynchronizace vytváření modulů, typů a členů v dynamickém sestavení; v opačném případě . false

assemblyAttributes
IEnumerable<CustomAttributeBuilder>

Výčet atributů, které se mají použít na sestavení, nebo null pokud neexistují žádné atributy.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Poznámky

Toto přetížení metody slouží k určení atributů, které nefungují správně, pokud nejsou použity při vytvoření dynamického sestavení. Například atributy zabezpečení, například SecurityTransparentAttribute a SecurityCriticalAttribute nefungují správně, pokud jsou přidány po vytvoření dynamického sestavení.

Pokud isSynchronized je true, následující metody výsledné AssemblyBuilder budou synchronizovány: DefineDynamicModule, DefineResource, AddResourceFile, GetDynamicModule, , SetEntryPoint, a Save. Pokud jsou dvě z těchto metod volány na různých vláknech, jeden bude blokovat, dokud se druhý nedokončí.

Viz také

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet)

Upozornění

Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu a žádostí o oprávnění.

public:
 virtual System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::Security::PermissionSet ^ requiredPermissions, System::Security::PermissionSet ^ optionalPermissions, System::Security::PermissionSet ^ refusedPermissions);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions);
[System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default.  See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions);
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
[<System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default.  See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.PermissionSet * System.Security.PermissionSet * System.Security.PermissionSet -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, requiredPermissions As PermissionSet, optionalPermissions As PermissionSet, refusedPermissions As PermissionSet) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim, ve kterém bude dynamické sestavení přístupné.

requiredPermissions
PermissionSet

Požadovaná žádost o oprávnění.

optionalPermissions
PermissionSet

Nepovinná žádost o oprávnění.

refusedPermissions
PermissionSet

Žádost o odmítnutá oprávnění.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Implementuje

Atributy

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence)

Upozornění

Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of DefineDynamicAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkId=155570 for more information.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště a důkazů.

public:
 virtual System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::String ^ dir, System::Security::Policy::Evidence ^ evidence);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, System.Security.Policy.Evidence evidence);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of DefineDynamicAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkId=155570 for more information.")]
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir, System.Security.Policy.Evidence evidence);
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence -> System.Reflection.Emit.AssemblyBuilder
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of DefineDynamicAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkId=155570 for more information.")>]
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string * System.Security.Policy.Evidence -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, dir As String, evidence As Evidence) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim, ve kterém bude dynamické sestavení přístupné.

dir
String

Název adresáře, do kterého se sestavení uloží. Pokud dir ano null, adresář se ve výchozím nastavení nastaví na aktuální adresář.

evidence
Evidence

Důkaz poskytnutý pro dynamické sestavení. Důkazy se používají jako konečná sada důkazů používaných k řešení zásad.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Implementuje

Atributy

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource)

Definuje dynamické sestavení se zadaným názvem, režimem přístupu a vlastními atributy a použitím zadaného zdroje pro kontext zabezpečení.

public:
 System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::Collections::Generic::IEnumerable<System::Reflection::Emit::CustomAttributeBuilder ^> ^ assemblyAttributes, System::Security::SecurityContextSource securityContextSource);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, System.Collections.Generic.IEnumerable<System.Reflection.Emit.CustomAttributeBuilder> assemblyAttributes, System.Security.SecurityContextSource securityContextSource);
member this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * seq<System.Reflection.Emit.CustomAttributeBuilder> * System.Security.SecurityContextSource -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, assemblyAttributes As IEnumerable(Of CustomAttributeBuilder), securityContextSource As SecurityContextSource) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim přístupu pro dynamické sestavení.

assemblyAttributes
IEnumerable<CustomAttributeBuilder>

Výčet atributů, které se mají použít na sestavení, nebo null pokud neexistují žádné atributy.

securityContextSource
SecurityContextSource

Zdroj kontextu zabezpečení.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Hodnota securityContextSource nebyla jednou z hodnot výčtu.

Poznámky

Toto přetížení metody slouží k určení atributů, které nefungují správně, pokud nejsou použity při vytvoření dynamického sestavení. Například atributy zabezpečení, například SecurityTransparentAttribute a SecurityCriticalAttribute nefungují správně, pokud jsou přidány po vytvoření dynamického sestavení.

Tato metoda by se měla použít pouze k definování dynamického sestavení v aktuální doméně aplikace. Další informace o tomto omezení naleznete v Load(AssemblyName) přetížení metody.

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String)

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu a adresáře úložiště.

public:
 virtual System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::String ^ dir);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, string dir);
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * string -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, dir As String) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim, ve kterém bude dynamické sestavení přístupné.

dir
String

Název adresáře, do kterého se sestavení uloží. Pokud dir ano null, adresář se ve výchozím nastavení nastaví na aktuální adresář.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Implementuje

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Příklady

Následující ukázka ukazuje metodu DefineDynamicAssembly a AssemblyResolve událost.

Pro spuštění tohoto příkladu kódu musíte zadat plně kvalifikovaný název sestavení. Informace o získání plně kvalifikovaného názvu sestavení naleznete v tématu Názvy sestavení.

using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
ref class Test
{
public:
   static void InstantiateMyDynamicType( AppDomain^ domain )
   {
      try
      {
         
         // You must supply a valid fully qualified assembly name here.
         domain->CreateInstance( "Assembly text name, Version, Culture, PublicKeyToken", "MyDynamicType" );
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( e->Message );
      }

   }

   static Assembly^ MyResolveEventHandler( Object^ sender, ResolveEventArgs^ args )
   {
      return DefineDynamicAssembly( dynamic_cast<AppDomain^>(sender) );
   }

   static Assembly^ DefineDynamicAssembly( AppDomain^ domain )
   {
      
      // Build a dynamic assembly using Reflection Emit API.
      AssemblyName^ assemblyName = gcnew AssemblyName;
      assemblyName->Name = "MyDynamicAssembly";
      AssemblyBuilder^ assemblyBuilder = domain->DefineDynamicAssembly( assemblyName, AssemblyBuilderAccess::Run );
      ModuleBuilder^ moduleBuilder = assemblyBuilder->DefineDynamicModule( "MyDynamicModule" );
      TypeBuilder^ typeBuilder = moduleBuilder->DefineType( "MyDynamicType", TypeAttributes::Public );
      ConstructorBuilder^ constructorBuilder = typeBuilder->DefineConstructor( MethodAttributes::Public, CallingConventions::Standard, nullptr );
      ILGenerator^ ilGenerator = constructorBuilder->GetILGenerator();
      ilGenerator->EmitWriteLine( "MyDynamicType instantiated!" );
      ilGenerator->Emit( OpCodes::Ret );
      typeBuilder->CreateType();
      return assemblyBuilder;
   }

};

int main()
{
   AppDomain^ currentDomain = AppDomain::CurrentDomain;
   Test::InstantiateMyDynamicType( currentDomain ); // Failed!
   currentDomain->AssemblyResolve += gcnew ResolveEventHandler( Test::MyResolveEventHandler );
   Test::InstantiateMyDynamicType( currentDomain ); // OK!
}
using System;
using System.Reflection;
using System.Reflection.Emit;

class DefinedDynamicAssemblySnippet {
   public static void Main() {
      AppDomain currentDomain = AppDomain.CurrentDomain;

      InstantiateMyDynamicType(currentDomain);   // Failed!

      currentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler);

      InstantiateMyDynamicType(currentDomain);   // OK!
   }

   static void InstantiateMyDynamicType(AppDomain domain) {
      try {
         // You must supply a valid fully qualified assembly name here.
         domain.CreateInstance("Assembly text name, Version, Culture, PublicKeyToken", "MyDynamicType");
      } catch (Exception e) {
         Console.WriteLine(e.Message);
      }
   }

   static Assembly MyResolveEventHandler(object sender, ResolveEventArgs args) {
      return DefineDynamicAssembly((AppDomain) sender);
   }

   static Assembly DefineDynamicAssembly(AppDomain domain) {
      // Build a dynamic assembly using Reflection Emit API.

      AssemblyName assemblyName = new AssemblyName();
      assemblyName.Name = "MyDynamicAssembly";

      AssemblyBuilder assemblyBuilder = domain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
      ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("MyDynamicModule");
      TypeBuilder typeBuilder = moduleBuilder.DefineType("MyDynamicType", TypeAttributes.Public);
      ConstructorBuilder constructorBuilder = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, null);
      ILGenerator ilGenerator = constructorBuilder.GetILGenerator();

      ilGenerator.EmitWriteLine("MyDynamicType instantiated!");
      ilGenerator.Emit(OpCodes.Ret);

      typeBuilder.CreateType();

      return assemblyBuilder;
   }
}
open System
open System.Reflection
open System.Reflection.Emit

let instantiateMyDynamicType (domain: AppDomain) =
    try
        // You must supply a valid fully qualified assembly name here.
        domain.CreateInstance("Assembly text name, Version, Culture, PublicKeyToken", "MyDynamicType")
        |> ignore
    with e ->
        printfn $"{e.Message}"

let defineDynamicAssembly (domain: AppDomain) =
    // Build a dynamic assembly using Reflection Emit API.
    let assemblyName = AssemblyName()
    assemblyName.Name <- "MyDynamicAssembly"

    let assemblyBuilder = domain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run)
    let moduleBuilder = assemblyBuilder.DefineDynamicModule "MyDynamicModule"
    let typeBuilder = moduleBuilder.DefineType("MyDynamicType", TypeAttributes.Public)
    let constructorBuilder = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, null)
    let ilGenerator = constructorBuilder.GetILGenerator()

    ilGenerator.EmitWriteLine "MyDynamicType instantiated!"
    ilGenerator.Emit OpCodes.Ret

    typeBuilder.CreateType() |> ignore

    assemblyBuilder

let myResolveEventHandler (sender: obj) _ =
    defineDynamicAssembly (sender :?> AppDomain)
    :> Assembly
   
let currentDomain = AppDomain.CurrentDomain

instantiateMyDynamicType currentDomain   // Failed!

currentDomain.add_AssemblyResolve(ResolveEventHandler myResolveEventHandler)

instantiateMyDynamicType currentDomain   // OK!

Imports System.Reflection
Imports System.Reflection.Emit

Module Test
   
   Sub Main()
      Dim currentDomain As AppDomain = AppDomain.CurrentDomain
      
      InstantiateMyDynamicType(currentDomain)   'Failed!
      
      AddHandler currentDomain.AssemblyResolve, AddressOf MyResolveEventHandler
      
      InstantiateMyDynamicType(currentDomain)   'OK!
   End Sub
   
   Sub InstantiateMyDynamicType(domain As AppDomain)
      Try
         ' You must supply a valid fully qualified assembly name here.
         domain.CreateInstance("Assembly text name, Version, Culture, PublicKeyToken", "MyDynamicType")
      Catch e As Exception
         Console.WriteLine(e.Message)
      End Try
   End Sub
   
   Function MyResolveEventHandler(sender As Object, args As ResolveEventArgs) As System.Reflection.Assembly
      Return DefineDynamicAssembly(DirectCast(sender, AppDomain))
   End Function 'MyResolveEventHandler
   
   Function DefineDynamicAssembly(domain As AppDomain) As System.Reflection.Assembly
      ' Build a dynamic assembly using Reflection Emit API.

      Dim assemblyName As New AssemblyName()
      assemblyName.Name = "MyDynamicAssembly"
      
      Dim assemblyBuilder As AssemblyBuilder = domain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run)
      Dim moduleBuilder As ModuleBuilder = assemblyBuilder.DefineDynamicModule("MyDynamicModule")
      Dim typeBuilder As TypeBuilder = moduleBuilder.DefineType("MyDynamicType", TypeAttributes.Public)
      Dim constructorBuilder As ConstructorBuilder = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, Nothing)
      Dim ilGenerator As ILGenerator = constructorBuilder.GetILGenerator()
      
      ilGenerator.EmitWriteLine("MyDynamicType instantiated!")
      ilGenerator.Emit(OpCodes.Ret)
      
      typeBuilder.CreateType()
      
      Return assemblyBuilder
   End Function 'DefineDynamicAssembly

End Module 'Test

Poznámky

Tato metoda by se měla použít pouze k definování dynamického sestavení v aktuální doméně aplikace. Další informace naleznete v Load(AssemblyName) přetížení metody.

Note

Při vývoji kódu, který generuje dynamická sestavení, se doporučuje použít přetížení DefineDynamicAssembly metody, která určuje důkazy a oprávnění, poskytnout důkaz, který má dynamické sestavení mít, a zahrnout do SecurityPermissionFlag.SkipVerificationrefusedPermissions. Zahrnutím SkipVerification do parametru refusedPermissions zajistíte ověření jazyka MSIL. Omezení této techniky spočívá v tom, že je také příčinou SecurityException vyvolání při použití s kódem, který vyžaduje úplný vztah důvěryhodnosti.

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence)

Upozornění

Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu a důkazů.

public:
 virtual System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::Security::Policy::Evidence ^ evidence);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, System.Security.Policy.Evidence evidence);
[System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default.  See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, System.Security.Policy.Evidence evidence);
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.Policy.Evidence -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.Policy.Evidence -> System.Reflection.Emit.AssemblyBuilder
[<System.Obsolete("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default.  See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.Policy.Evidence -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * System.Security.Policy.Evidence -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, evidence As Evidence) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim, ve kterém bude dynamické sestavení přístupné.

evidence
Evidence

Důkaz poskytnutý pro dynamické sestavení. Důkazy se používají jako konečná sada důkazů používaných k řešení zásad.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Implementuje

Atributy

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)

Definuje dynamické sestavení se zadaným názvem, režimem přístupu a vlastními atributy.

public:
 System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access, System::Collections::Generic::IEnumerable<System::Reflection::Emit::CustomAttributeBuilder ^> ^ assemblyAttributes);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, System.Collections.Generic.IEnumerable<System.Reflection.Emit.CustomAttributeBuilder> assemblyAttributes);
member this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess * seq<System.Reflection.Emit.CustomAttributeBuilder> -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess, assemblyAttributes As IEnumerable(Of CustomAttributeBuilder)) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim přístupu pro dynamické sestavení.

assemblyAttributes
IEnumerable<CustomAttributeBuilder>

Výčet atributů, které se mají použít na sestavení, nebo null pokud neexistují žádné atributy.

Návraty

Dynamické sestavení se zadaným názvem a funkcemi.

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Příklady

Následující ukázka kódu ukazuje, jak vytvořit dynamické sestavení, které má .SecurityTransparentAttribute Atribut musí být zadán jako prvek pole CustomAttributeBuilder objektů.

Prvním krokem při vytváření objektu CustomAttributeBuilder je získání konstruktoru pro atribut. Konstruktor nemá žádné parametry, takže GetConstructor metoda je volána s prázdným polem Type objektů představující typy parametrů. Druhým krokem je předání výsledného ConstructorInfo objektu konstruktoru CustomAttributeBuilder pro třídu spolu s prázdnou maticí typu Object představující argumenty.

Výsledek CustomAttributeBuilder se pak předá DefineDynamicAssembly metodě jako jediný prvek pole.

Ukázkový kód definuje modul a typ v novém dynamickém sestavení a pak zobrazí atributy sestavení.

using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
using namespace System::Security;

void main()
{
    // Create a CustomAttributeBuilder for the assembly attribute. 
    // 
    // SecurityTransparentAttribute has a parameterless constructor, 
    // which is retrieved by passing an array of empty types for the
    // constructor's parameter types. The CustomAttributeBuilder is 
    // then created by passing the ConstructorInfo and an empty array
    // of objects to represent the parameters.
    //
    ConstructorInfo^ transparentCtor = 
        SecurityTransparentAttribute::typeid->GetConstructor(
            Type::EmptyTypes);
    CustomAttributeBuilder^ transparent = gcnew CustomAttributeBuilder(
        transparentCtor,
        gcnew array<Object^> {} );
      
    // Create a dynamic assembly using the attribute. The attribute is
    // passed as an array with one element.
    AssemblyName^ aName = gcnew AssemblyName("EmittedAssembly");
    AssemblyBuilder^ ab = AppDomain::CurrentDomain->DefineDynamicAssembly( 
        aName, 
        AssemblyBuilderAccess::Run,
        gcnew array<CustomAttributeBuilder^> { transparent } );

    ModuleBuilder^ mb = ab->DefineDynamicModule( aName->Name );
    TypeBuilder^ tb = mb->DefineType( 
        "MyDynamicType", 
        TypeAttributes::Public );
    tb->CreateType();

    Console::WriteLine("{0}\nAssembly attributes:", ab);
    for each (Attribute^ attr in ab->GetCustomAttributes(true))
    {
        Console::WriteLine("\t{0}", attr);
    }
};

/* This code example produces the following output:

EmittedAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Assembly attributes:
        System.Security.SecurityTransparentAttribute
 */
using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Security;

class CustomAttributeBuilderSnippet
{
    static void Main()
    {
        // Create a CustomAttributeBuilder for the assembly attribute.
        //
        // SecurityTransparentAttribute has a parameterless constructor,
        // which is retrieved by passing an array of empty types for the
        // constructor's parameter types. The CustomAttributeBuilder is
        // then created by passing the ConstructorInfo and an empty array
        // of objects to represent the parameters.
        //
        ConstructorInfo transparentCtor =
            typeof(SecurityTransparentAttribute).GetConstructor(
                Type.EmptyTypes);
        CustomAttributeBuilder transparent = new CustomAttributeBuilder(
            transparentCtor,
            new Object[] {} );

        // Create a dynamic assembly using the attribute. The attribute is
        // passed as an array with one element.
        AssemblyName aName = new AssemblyName("EmittedAssembly");
        AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly(
            aName,
            AssemblyBuilderAccess.Run,
            new CustomAttributeBuilder[] { transparent } );

        ModuleBuilder mb = ab.DefineDynamicModule( aName.Name );
        TypeBuilder tb = mb.DefineType(
            "MyDynamicType",
            TypeAttributes.Public );
        tb.CreateType();

        Console.WriteLine("{0}\nAssembly attributes:", ab);
        foreach (Attribute attr in ab.GetCustomAttributes(true))
        {
            Console.WriteLine("\t{0}", attr);
        }
    }
}

/* This code example produces the following output:

EmittedAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Assembly attributes:
        System.Security.SecurityTransparentAttribute
 */
open System
open System.Reflection
open System.Reflection.Emit
open System.Security

// Create a CustomAttributeBuilder for the assembly attribute.
//
// SecurityTransparentAttribute has a parameterless constructor,
// which is retrieved by passing an array of empty types for the
// constructor's parameter types. The CustomAttributeBuilder is
// then created by passing the ConstructorInfo and an empty array
// of objects to represent the parameters.
//
let transparentCtor =
    typeof<SecurityTransparentAttribute>.GetConstructor(Type.EmptyTypes)
let transparent = CustomAttributeBuilder(transparentCtor, [||])

// Create a dynamic assembly using the attribute. The attribute is
// passed as an array with one element.
let aName = AssemblyName "EmittedAssembly"
let ab = AppDomain.CurrentDomain.DefineDynamicAssembly(
    aName,
    AssemblyBuilderAccess.Run,
    [| transparent |])

let mb = ab.DefineDynamicModule aName.Name
let tb = mb.DefineType(
    "MyDynamicType",
    TypeAttributes.Public )
tb.CreateType() |> ignore

printfn $"{ab}\nAssembly attributes:"
for attr in ab.GetCustomAttributes true do
    printfn $"\t{attr}"

(* This code example produces the following output:

EmittedAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Assembly attributes:
        System.Security.SecurityTransparentAttribute
 *)
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Security

Module Example

    Sub Main()
    
        ' Create a CustomAttributeBuilder for the assembly attribute. 
        ' 
        ' SecurityTransparentAttribute has a parameterless constructor, 
        ' which is retrieved by passing an array of empty types for the
        ' constructor's parameter types. The CustomAttributeBuilder is 
        ' then created by passing the ConstructorInfo and an empty array
        ' of objects to represent the parameters.
        '
        Dim transparentCtor As ConstructorInfo = _
            GetType(SecurityTransparentAttribute).GetConstructor( _
                Type.EmptyTypes)
        Dim transparent As New CustomAttributeBuilder( _
            transparentCtor, _
            New Object() {} )
      
        ' Create a dynamic assembly Imports the attribute. The attribute is
        ' passed as an array with one element.
        Dim aName As New AssemblyName("EmittedAssembly")
        Dim ab As AssemblyBuilder = _
            AppDomain.CurrentDomain.DefineDynamicAssembly( _
                aName, _
                AssemblyBuilderAccess.Run, _
                New CustomAttributeBuilder() { transparent } )

        Dim mb As ModuleBuilder = ab.DefineDynamicModule( aName.Name )
        Dim tb As TypeBuilder = mb.DefineType( _
            "MyDynamicType", _
            TypeAttributes.Public )
        tb.CreateType()

        Console.WriteLine("{0}" & vbLf & "Assembly attributes:", ab)
        For Each attr As Attribute In ab.GetCustomAttributes(True)
            Console.WriteLine(vbTab & "{0}", attr)
        Next
    End Sub
End Module

' This code example produces the following output:
'
'EmittedAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
'Assembly attributes:
'        System.Security.SecurityTransparentAttribute

Poznámky

Toto přetížení metody slouží k určení atributů, které nefungují správně, pokud nejsou použity při vytvoření dynamického sestavení. Například atributy zabezpečení, například SecurityTransparentAttribute a SecurityCriticalAttribute nefungují správně, pokud jsou přidány po vytvoření dynamického sestavení.

Tato metoda by se měla použít pouze k definování dynamického sestavení v aktuální doméně aplikace. Další informace o tomto omezení naleznete v Load(AssemblyName) přetížení metody.

Toto přetížení metody je zavedeno v .NET Framework 3.5.

Viz také

Platí pro

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess)

Definuje dynamické sestavení se zadaným názvem a režimem přístupu.

public:
 virtual System::Reflection::Emit::AssemblyBuilder ^ DefineDynamicAssembly(System::Reflection::AssemblyName ^ name, System::Reflection::Emit::AssemblyBuilderAccess access);
public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access);
abstract member DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess -> System.Reflection.Emit.AssemblyBuilder
override this.DefineDynamicAssembly : System.Reflection.AssemblyName * System.Reflection.Emit.AssemblyBuilderAccess -> System.Reflection.Emit.AssemblyBuilder
Public Function DefineDynamicAssembly (name As AssemblyName, access As AssemblyBuilderAccess) As AssemblyBuilder

Parametry

name
AssemblyName

Jedinečná identita dynamického sestavení.

access
AssemblyBuilderAccess

Režim přístupu pro dynamické sestavení.

Návraty

Dynamické sestavení se zadaným názvem a režimem přístupu.

Implementuje

Výjimky

name je null.

Name vlastnost name je null.

nebo

Vlastnost Namename začíná prázdným znakem nebo obsahuje lomítko dopředu nebo dozadu.

Operace se pokusí o uvolněnou doménu aplikace.

Příklady

Následující ukázka ukazuje metodu DefineDynamicAssembly a AssemblyResolve událost.

Pro spuštění tohoto příkladu kódu musíte zadat plně kvalifikovaný název sestavení. Informace o získání plně kvalifikovaného názvu sestavení naleznete v tématu Názvy sestavení.

using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
ref class Test
{
public:
   static void InstantiateMyDynamicType( AppDomain^ domain )
   {
      try
      {
         
         // You must supply a valid fully qualified assembly name here.
         domain->CreateInstance( "Assembly text name, Version, Culture, PublicKeyToken", "MyDynamicType" );
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( e->Message );
      }

   }

   static Assembly^ MyResolveEventHandler( Object^ sender, ResolveEventArgs^ args )
   {
      return DefineDynamicAssembly( dynamic_cast<AppDomain^>(sender) );
   }

   static Assembly^ DefineDynamicAssembly( AppDomain^ domain )
   {
      
      // Build a dynamic assembly using Reflection Emit API.
      AssemblyName^ assemblyName = gcnew AssemblyName;
      assemblyName->Name = "MyDynamicAssembly";
      AssemblyBuilder^ assemblyBuilder = domain->DefineDynamicAssembly( assemblyName, AssemblyBuilderAccess::Run );
      ModuleBuilder^ moduleBuilder = assemblyBuilder->DefineDynamicModule( "MyDynamicModule" );
      TypeBuilder^ typeBuilder = moduleBuilder->DefineType( "MyDynamicType", TypeAttributes::Public );
      ConstructorBuilder^ constructorBuilder = typeBuilder->DefineConstructor( MethodAttributes::Public, CallingConventions::Standard, nullptr );
      ILGenerator^ ilGenerator = constructorBuilder->GetILGenerator();
      ilGenerator->EmitWriteLine( "MyDynamicType instantiated!" );
      ilGenerator->Emit( OpCodes::Ret );
      typeBuilder->CreateType();
      return assemblyBuilder;
   }

};

int main()
{
   AppDomain^ currentDomain = AppDomain::CurrentDomain;
   Test::InstantiateMyDynamicType( currentDomain ); // Failed!
   currentDomain->AssemblyResolve += gcnew ResolveEventHandler( Test::MyResolveEventHandler );
   Test::InstantiateMyDynamicType( currentDomain ); // OK!
}
using System;
using System.Reflection;
using System.Reflection.Emit;

class DefinedDynamicAssemblySnippet {
   public static void Main() {
      AppDomain currentDomain = AppDomain.CurrentDomain;

      InstantiateMyDynamicType(currentDomain);   // Failed!

      currentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler);

      InstantiateMyDynamicType(currentDomain);   // OK!
   }

   static void InstantiateMyDynamicType(AppDomain domain) {
      try {
         // You must supply a valid fully qualified assembly name here.
         domain.CreateInstance("Assembly text name, Version, Culture, PublicKeyToken", "MyDynamicType");
      } catch (Exception e) {
         Console.WriteLine(e.Message);
      }
   }

   static Assembly MyResolveEventHandler(object sender, ResolveEventArgs args) {
      return DefineDynamicAssembly((AppDomain) sender);
   }

   static Assembly DefineDynamicAssembly(AppDomain domain) {
      // Build a dynamic assembly using Reflection Emit API.

      AssemblyName assemblyName = new AssemblyName();
      assemblyName.Name = "MyDynamicAssembly";

      AssemblyBuilder assemblyBuilder = domain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
      ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("MyDynamicModule");
      TypeBuilder typeBuilder = moduleBuilder.DefineType("MyDynamicType", TypeAttributes.Public);
      ConstructorBuilder constructorBuilder = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, null);
      ILGenerator ilGenerator = constructorBuilder.GetILGenerator();

      ilGenerator.EmitWriteLine("MyDynamicType instantiated!");
      ilGenerator.Emit(OpCodes.Ret);

      typeBuilder.CreateType();

      return assemblyBuilder;
   }
}
open System
open System.Reflection
open System.Reflection.Emit

let instantiateMyDynamicType (domain: AppDomain) =
    try
        // You must supply a valid fully qualified assembly name here.
        domain.CreateInstance("Assembly text name, Version, Culture, PublicKeyToken", "MyDynamicType")
        |> ignore
    with e ->
        printfn $"{e.Message}"

let defineDynamicAssembly (domain: AppDomain) =
    // Build a dynamic assembly using Reflection Emit API.
    let assemblyName = AssemblyName()
    assemblyName.Name <- "MyDynamicAssembly"

    let assemblyBuilder = domain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run)
    let moduleBuilder = assemblyBuilder.DefineDynamicModule "MyDynamicModule"
    let typeBuilder = moduleBuilder.DefineType("MyDynamicType", TypeAttributes.Public)
    let constructorBuilder = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, null)
    let ilGenerator = constructorBuilder.GetILGenerator()

    ilGenerator.EmitWriteLine "MyDynamicType instantiated!"
    ilGenerator.Emit OpCodes.Ret

    typeBuilder.CreateType() |> ignore

    assemblyBuilder

let myResolveEventHandler (sender: obj) _ =
    defineDynamicAssembly (sender :?> AppDomain)
    :> Assembly
   
let currentDomain = AppDomain.CurrentDomain

instantiateMyDynamicType currentDomain   // Failed!

currentDomain.add_AssemblyResolve(ResolveEventHandler myResolveEventHandler)

instantiateMyDynamicType currentDomain   // OK!

Imports System.Reflection
Imports System.Reflection.Emit

Module Test
   
   Sub Main()
      Dim currentDomain As AppDomain = AppDomain.CurrentDomain
      
      InstantiateMyDynamicType(currentDomain)   'Failed!
      
      AddHandler currentDomain.AssemblyResolve, AddressOf MyResolveEventHandler
      
      InstantiateMyDynamicType(currentDomain)   'OK!
   End Sub
   
   Sub InstantiateMyDynamicType(domain As AppDomain)
      Try
         ' You must supply a valid fully qualified assembly name here.
         domain.CreateInstance("Assembly text name, Version, Culture, PublicKeyToken", "MyDynamicType")
      Catch e As Exception
         Console.WriteLine(e.Message)
      End Try
   End Sub
   
   Function MyResolveEventHandler(sender As Object, args As ResolveEventArgs) As System.Reflection.Assembly
      Return DefineDynamicAssembly(DirectCast(sender, AppDomain))
   End Function 'MyResolveEventHandler
   
   Function DefineDynamicAssembly(domain As AppDomain) As System.Reflection.Assembly
      ' Build a dynamic assembly using Reflection Emit API.

      Dim assemblyName As New AssemblyName()
      assemblyName.Name = "MyDynamicAssembly"
      
      Dim assemblyBuilder As AssemblyBuilder = domain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run)
      Dim moduleBuilder As ModuleBuilder = assemblyBuilder.DefineDynamicModule("MyDynamicModule")
      Dim typeBuilder As TypeBuilder = moduleBuilder.DefineType("MyDynamicType", TypeAttributes.Public)
      Dim constructorBuilder As ConstructorBuilder = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, Nothing)
      Dim ilGenerator As ILGenerator = constructorBuilder.GetILGenerator()
      
      ilGenerator.EmitWriteLine("MyDynamicType instantiated!")
      ilGenerator.Emit(OpCodes.Ret)
      
      typeBuilder.CreateType()
      
      Return assemblyBuilder
   End Function 'DefineDynamicAssembly

End Module 'Test

Poznámky

Tato metoda by se měla použít pouze k definování dynamického sestavení v aktuální doméně aplikace. Další informace naleznete v Load(AssemblyName) přetížení metody.

Note

Při vývoji kódu, který generuje dynamická sestavení, se doporučuje použít přetížení DefineDynamicAssembly metody, která určuje důkazy a oprávnění, poskytnout důkaz, který má dynamické sestavení mít, a zahrnout do SecurityPermissionFlag.SkipVerificationrefusedPermissions. Zahrnutím SkipVerification do parametru refusedPermissions zajistíte ověření jazyka MSIL. Omezení této techniky spočívá v tom, že je také příčinou SecurityException vyvolání při použití s kódem, který vyžaduje úplný vztah důvěryhodnosti.

Platí pro