ModuleBuilder.DefineType Metoda

Definice

Vytvoří .TypeBuilder Chcete-li definovat typ hodnoty, definujte typ, který je odvozen od ValueType.

Přetížení

DefineType(String, TypeAttributes, Type, PackingSize, Int32)

TypeBuilder Vytvoří daný název typu, atributy, typ, který definovaný typ rozšiřuje, velikost balení definovaného typu a celkovou velikost definovaného typu.

DefineType(String, TypeAttributes, Type, Type[])

TypeBuilder Vytvoří daný název typu, atributy, typ, který definovaný typ rozšiřuje, a rozhraní, která definovaný typ implementuje.

DefineType(String, TypeAttributes, Type, PackingSize)

TypeBuilder Vytvoří daný název typu, atributy, typ, který definovaný typ rozšiřuje, a velikost balení typu.

DefineType(String, TypeAttributes, Type)

TypeBuilder Vytvoří název daného typu, jeho atributy a typ, který definovaný typ rozšiřuje.

DefineType(String, TypeAttributes)

TypeBuilder Vytvoří daný název typu a atributy typu.

DefineType(String)

TypeBuilder Vytvoří pro privátní typ se zadaným názvem v tomto modulu.

DefineType(String, TypeAttributes, Type, Int32)

TypeBuilder Vytvoří daný název typu, atributy, typ, který definovaný typ rozšiřuje, a celkovou velikost typu.

DefineType(String, TypeAttributes, Type, PackingSize, Int32)

Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs

TypeBuilder Vytvoří daný název typu, atributy, typ, který definovaný typ rozšiřuje, velikost balení definovaného typu a celkovou velikost definovaného typu.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr, Type ^ parent, System::Reflection::Emit::PackingSize packingSize, int typesize);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type? parent, System.Reflection.Emit.PackingSize packingSize, int typesize);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type parent, System.Reflection.Emit.PackingSize packingSize, int typesize);
member this.DefineType : string * System.Reflection.TypeAttributes * Type * System.Reflection.Emit.PackingSize * int -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes, parent As Type, packingSize As PackingSize, typesize As Integer) As TypeBuilder

Parametry

name
String

Úplná cesta typu. name nesmí obsahovat vložené hodnoty null.

attr
TypeAttributes

Atributy definovaného typu.

parent
Type

Typ, který definovaný typ rozšiřuje.

packingSize
PackingSize

Velikost balení typu.

typesize
Int32

Celková velikost typu.

Návraty

Vytvoří se TypeBuilder všemi požadovanými atributy.

Výjimky

Typ s daným názvem existuje v nadřazené sestavení tohoto modulu.

-nebo-

Atributy vnořeného typu jsou nastaveny na typ, který není vnořený.

name je null.

Příklady

Následující příklad vytvoří v aktuálním dynamickém TypeBuilder modulu pomocí CreateType, sestaví a dokončí typ a uloží sestavení.

AssemblyName^ asmname = gcnew AssemblyName;
asmname->Name = "assemfilename.exe";
AssemblyBuilder^ asmbuild = System::Threading::Thread::GetDomain()->
   DefineDynamicAssembly( asmname, AssemblyBuilderAccess::RunAndSave );
ModuleBuilder^ modbuild = asmbuild->DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder^ typebuild1 = modbuild->DefineType( "typename" );
typebuild1->CreateType();
asmbuild->Save( "assemfilename.exe" );
AssemblyName asmname = new AssemblyName();
asmname.Name = "assemfilename.exe";
AssemblyBuilder asmbuild = System.Threading.Thread.GetDomain().
            DefineDynamicAssembly(asmname, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder modbuild = asmbuild.DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder typebuild1 = modbuild.DefineType( "typename" );
typebuild1.CreateType();
asmbuild.Save( "assemfilename.exe" );
Dim asmname As New AssemblyName()
asmname.Name = "assemfilename.exe"
Dim asmbuild As AssemblyBuilder = _
   System.Threading.Thread.GetDomain().DefineDynamicAssembly(asmname, _
   AssemblyBuilderAccess.RunAndSave)
Dim modbuild As ModuleBuilder = _
   asmbuild.DefineDynamicModule("modulename", "assemfilename.exe")
Dim typebuild1 As TypeBuilder = modbuild.DefineType("typename")
typebuild1.CreateType()
asmbuild.Save("assemfilename.exe")

Poznámky

Názvy typů musí být v rámci sestavení jedinečné. Nemůžete mít dva typy se stejným názvem ve dvou různých modulech sestavení.

Poznámka

Počínaje .NET Framework 2.0 Service Pack 1 už tento člen nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v emitu reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

DefineType(String, TypeAttributes, Type, Type[])

Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs

TypeBuilder Vytvoří daný název typu, atributy, typ, který definovaný typ rozšiřuje, a rozhraní, která definovaný typ implementuje.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr, Type ^ parent, cli::array <Type ^> ^ interfaces);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type? parent, Type[]? interfaces);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type parent, Type[] interfaces);
[System.Runtime.InteropServices.ComVisible(true)]
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type parent, Type[] interfaces);
member this.DefineType : string * System.Reflection.TypeAttributes * Type * Type[] -> System.Reflection.Emit.TypeBuilder
[<System.Runtime.InteropServices.ComVisible(true)>]
member this.DefineType : string * System.Reflection.TypeAttributes * Type * Type[] -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes, parent As Type, interfaces As Type()) As TypeBuilder

Parametry

name
String

Úplná cesta typu. name nesmí obsahovat vložené hodnoty null.

attr
TypeAttributes

Atributy, které mají být přidruženy k typu.

parent
Type

Typ, který definovaný typ rozšiřuje.

interfaces
Type[]

Seznam rozhraní, která typ implementuje.

Návraty

Vytvoří se TypeBuilder všemi požadovanými atributy.

Atributy

Výjimky

Typ s daným názvem existuje v nadřazené sestavení tohoto modulu.

-nebo-

Atributy vnořeného typu jsou nastaveny na typ, který není vnořený.

name je null.

Příklady

Následující příklad vytvoří v aktuálním dynamickém TypeBuilder modulu pomocí CreateType, sestaví a dokončí typ a uloží sestavení.

AssemblyName^ asmname = gcnew AssemblyName;
asmname->Name = "assemfilename.exe";
AssemblyBuilder^ asmbuild = System::Threading::Thread::GetDomain()->
   DefineDynamicAssembly( asmname, AssemblyBuilderAccess::RunAndSave );
ModuleBuilder^ modbuild = asmbuild->DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder^ typebuild1 = modbuild->DefineType( "typename" );
typebuild1->CreateType();
asmbuild->Save( "assemfilename.exe" );
AssemblyName asmname = new AssemblyName();
asmname.Name = "assemfilename.exe";
AssemblyBuilder asmbuild = System.Threading.Thread.GetDomain().
            DefineDynamicAssembly(asmname, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder modbuild = asmbuild.DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder typebuild1 = modbuild.DefineType( "typename" );
typebuild1.CreateType();
asmbuild.Save( "assemfilename.exe" );
Dim asmname As New AssemblyName()
asmname.Name = "assemfilename.exe"
Dim asmbuild As AssemblyBuilder = _
   System.Threading.Thread.GetDomain().DefineDynamicAssembly(asmname, _
   AssemblyBuilderAccess.RunAndSave)
Dim modbuild As ModuleBuilder = _
   asmbuild.DefineDynamicModule("modulename", "assemfilename.exe")
Dim typebuild1 As TypeBuilder = modbuild.DefineType("typename")
typebuild1.CreateType()
asmbuild.Save("assemfilename.exe")

Poznámky

Názvy typů musí být v rámci sestavení jedinečné. Nemůžete mít dva typy se stejným názvem ve dvou různých modulech sestavení.

Poznámka

Počínaje .NET Framework 2.0 Service Pack 1 už tento člen nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v emitu reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

DefineType(String, TypeAttributes, Type, PackingSize)

Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs

TypeBuilder Vytvoří daný název typu, atributy, typ, který definovaný typ rozšiřuje, a velikost balení typu.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr, Type ^ parent, System::Reflection::Emit::PackingSize packsize);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type? parent, System.Reflection.Emit.PackingSize packsize);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type parent, System.Reflection.Emit.PackingSize packsize);
member this.DefineType : string * System.Reflection.TypeAttributes * Type * System.Reflection.Emit.PackingSize -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes, parent As Type, packsize As PackingSize) As TypeBuilder

Parametry

name
String

Úplná cesta typu. name nesmí obsahovat vložené hodnoty null.

attr
TypeAttributes

Atributy definovaného typu.

parent
Type

Typ, který definovaný typ rozšiřuje.

packsize
PackingSize

Velikost balení typu.

Návraty

Objekt TypeBuilder .

Výjimky

Typ s daným názvem existuje v nadřazené sestavení tohoto modulu.

-nebo-

Atributy vnořeného typu jsou nastaveny na typ, který není vnořený.

name je null.

Příklady

Následující příklad vytvoří v aktuálním dynamickém TypeBuilder modulu pomocí CreateType, sestaví a dokončí typ a uloží sestavení.

AssemblyName^ asmname = gcnew AssemblyName;
asmname->Name = "assemfilename.exe";
AssemblyBuilder^ asmbuild = System::Threading::Thread::GetDomain()->
   DefineDynamicAssembly( asmname, AssemblyBuilderAccess::RunAndSave );
ModuleBuilder^ modbuild = asmbuild->DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder^ typebuild1 = modbuild->DefineType( "typename" );
typebuild1->CreateType();
asmbuild->Save( "assemfilename.exe" );
AssemblyName asmname = new AssemblyName();
asmname.Name = "assemfilename.exe";
AssemblyBuilder asmbuild = System.Threading.Thread.GetDomain().
            DefineDynamicAssembly(asmname, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder modbuild = asmbuild.DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder typebuild1 = modbuild.DefineType( "typename" );
typebuild1.CreateType();
asmbuild.Save( "assemfilename.exe" );
Dim asmname As New AssemblyName()
asmname.Name = "assemfilename.exe"
Dim asmbuild As AssemblyBuilder = _
   System.Threading.Thread.GetDomain().DefineDynamicAssembly(asmname, _
   AssemblyBuilderAccess.RunAndSave)
Dim modbuild As ModuleBuilder = _
   asmbuild.DefineDynamicModule("modulename", "assemfilename.exe")
Dim typebuild1 As TypeBuilder = modbuild.DefineType("typename")
typebuild1.CreateType()
asmbuild.Save("assemfilename.exe")

Poznámky

Názvy typů musí být v rámci sestavení jedinečné. Nemůžete mít dva typy se stejným názvem ve dvou různých modulech sestavení.

Poznámka

Počínaje .NET Framework 2.0 Service Pack 1 už tento člen nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v emitu reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

DefineType(String, TypeAttributes, Type)

Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs

TypeBuilder Vytvoří název daného typu, jeho atributy a typ, který definovaný typ rozšiřuje.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr, Type ^ parent);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type? parent);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type parent);
member this.DefineType : string * System.Reflection.TypeAttributes * Type -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes, parent As Type) As TypeBuilder

Parametry

name
String

Úplná cesta typu. name nesmí obsahovat vložené hodnoty null.

attr
TypeAttributes

Atribut, který má být přidružen k typu.

parent
Type

Typ, který definovaný typ rozšiřuje.

Návraty

Vytvoří se TypeBuilder všemi požadovanými atributy.

Výjimky

Typ s daným názvem existuje v nadřazené sestavení tohoto modulu.

-nebo-

Atributy vnořeného typu jsou nastaveny na typ, který není vnořený.

name je null.

Příklady

Následující příklad vytvoří v aktuálním dynamickém TypeBuilder modulu pomocí CreateType, sestaví a dokončí typ a uloží sestavení.

AssemblyName^ asmname = gcnew AssemblyName;
asmname->Name = "assemfilename.exe";
AssemblyBuilder^ asmbuild = System::Threading::Thread::GetDomain()->
   DefineDynamicAssembly( asmname, AssemblyBuilderAccess::RunAndSave );
ModuleBuilder^ modbuild = asmbuild->DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder^ typebuild1 = modbuild->DefineType( "typename" );
typebuild1->CreateType();
asmbuild->Save( "assemfilename.exe" );
AssemblyName asmname = new AssemblyName();
asmname.Name = "assemfilename.exe";
AssemblyBuilder asmbuild = System.Threading.Thread.GetDomain().
            DefineDynamicAssembly(asmname, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder modbuild = asmbuild.DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder typebuild1 = modbuild.DefineType( "typename" );
typebuild1.CreateType();
asmbuild.Save( "assemfilename.exe" );
Dim asmname As New AssemblyName()
asmname.Name = "assemfilename.exe"
Dim asmbuild As AssemblyBuilder = _
   System.Threading.Thread.GetDomain().DefineDynamicAssembly(asmname, _
   AssemblyBuilderAccess.RunAndSave)
Dim modbuild As ModuleBuilder = _
   asmbuild.DefineDynamicModule("modulename", "assemfilename.exe")
Dim typebuild1 As TypeBuilder = modbuild.DefineType("typename")
typebuild1.CreateType()
asmbuild.Save("assemfilename.exe")

Poznámky

Názvy typů musí být v rámci sestavení jedinečné. Nemůžete mít dva typy se stejným názvem ve dvou různých modulech sestavení.

Poznámka

Počínaje .NET Framework 2.0 Service Pack 1 už tento člen nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v emitu reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

DefineType(String, TypeAttributes)

Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs

TypeBuilder Vytvoří daný název typu a atributy typu.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr);
member this.DefineType : string * System.Reflection.TypeAttributes -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes) As TypeBuilder

Parametry

name
String

Úplná cesta typu. name nesmí obsahovat vložené hodnoty null.

attr
TypeAttributes

Atributy definovaného typu.

Návraty

Vytvoří se TypeBuilder všemi požadovanými atributy.

Výjimky

Typ s daným názvem existuje v nadřazené sestavení tohoto modulu.

-nebo-

Atributy vnořeného typu jsou nastaveny na typ, který není vnořený.

name je null.

Příklady

Následující příklad vytvoří v aktuálním dynamickém TypeBuilder modulu pomocí CreateType, sestaví a dokončí typ a uloží sestavení.

AssemblyName^ asmname = gcnew AssemblyName;
asmname->Name = "assemfilename.exe";
AssemblyBuilder^ asmbuild = System::Threading::Thread::GetDomain()->
   DefineDynamicAssembly( asmname, AssemblyBuilderAccess::RunAndSave );
ModuleBuilder^ modbuild = asmbuild->DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder^ typebuild1 = modbuild->DefineType( "typename" );
typebuild1->CreateType();
asmbuild->Save( "assemfilename.exe" );
AssemblyName asmname = new AssemblyName();
asmname.Name = "assemfilename.exe";
AssemblyBuilder asmbuild = System.Threading.Thread.GetDomain().
            DefineDynamicAssembly(asmname, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder modbuild = asmbuild.DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder typebuild1 = modbuild.DefineType( "typename" );
typebuild1.CreateType();
asmbuild.Save( "assemfilename.exe" );
Dim asmname As New AssemblyName()
asmname.Name = "assemfilename.exe"
Dim asmbuild As AssemblyBuilder = _
   System.Threading.Thread.GetDomain().DefineDynamicAssembly(asmname, _
   AssemblyBuilderAccess.RunAndSave)
Dim modbuild As ModuleBuilder = _
   asmbuild.DefineDynamicModule("modulename", "assemfilename.exe")
Dim typebuild1 As TypeBuilder = modbuild.DefineType("typename")
typebuild1.CreateType()
asmbuild.Save("assemfilename.exe")

Poznámky

Názvy typů musí být v rámci sestavení jedinečné. Nemůžete mít dva typy se stejným názvem ve dvou různých modulech sestavení.

Poznámka

Počínaje .NET Framework 2.0 Service Pack 1 už tento člen nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v emitu reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

DefineType(String)

Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs

TypeBuilder Vytvoří pro privátní typ se zadaným názvem v tomto modulu.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name);
public System.Reflection.Emit.TypeBuilder DefineType (string name);
member this.DefineType : string -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String) As TypeBuilder

Parametry

name
String

Úplná cesta typu, včetně oboru názvů. name nesmí obsahovat vložené hodnoty null.

Návraty

Privátní typ se zadaným názvem.

Výjimky

Typ s daným názvem existuje v nadřazené sestavení tohoto modulu.

-nebo-

Atributy vnořeného typu jsou nastaveny na typ, který není vnořený.

name je null.

Příklady

Následující příklad vytvoří v aktuálním dynamickém TypeBuilder modulu pomocí CreateType, sestaví a dokončí typ a uloží sestavení.

AssemblyName^ asmname = gcnew AssemblyName;
asmname->Name = "assemfilename.exe";
AssemblyBuilder^ asmbuild = System::Threading::Thread::GetDomain()->
   DefineDynamicAssembly( asmname, AssemblyBuilderAccess::RunAndSave );
ModuleBuilder^ modbuild = asmbuild->DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder^ typebuild1 = modbuild->DefineType( "typename" );
typebuild1->CreateType();
asmbuild->Save( "assemfilename.exe" );
AssemblyName asmname = new AssemblyName();
asmname.Name = "assemfilename.exe";
AssemblyBuilder asmbuild = System.Threading.Thread.GetDomain().
            DefineDynamicAssembly(asmname, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder modbuild = asmbuild.DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder typebuild1 = modbuild.DefineType( "typename" );
typebuild1.CreateType();
asmbuild.Save( "assemfilename.exe" );
Dim asmname As New AssemblyName()
asmname.Name = "assemfilename.exe"
Dim asmbuild As AssemblyBuilder = _
   System.Threading.Thread.GetDomain().DefineDynamicAssembly(asmname, _
   AssemblyBuilderAccess.RunAndSave)
Dim modbuild As ModuleBuilder = _
   asmbuild.DefineDynamicModule("modulename", "assemfilename.exe")
Dim typebuild1 As TypeBuilder = modbuild.DefineType("typename")
typebuild1.CreateType()
asmbuild.Save("assemfilename.exe")

Poznámky

Názvy typů musí být v rámci sestavení jedinečné. Nemůžete mít dva typy se stejným názvem ve dvou různých modulech sestavení.

Poznámka

Počínaje .NET Framework 2.0 Service Pack 1 už tento člen nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v emitu reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

DefineType(String, TypeAttributes, Type, Int32)

Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs
Zdroj:
ModuleBuilder.cs

TypeBuilder Vytvoří daný název typu, atributy, typ, který definovaný typ rozšiřuje, a celkovou velikost typu.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr, Type ^ parent, int typesize);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type? parent, int typesize);
public System.Reflection.Emit.TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, Type parent, int typesize);
member this.DefineType : string * System.Reflection.TypeAttributes * Type * int -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes, parent As Type, typesize As Integer) As TypeBuilder

Parametry

name
String

Úplná cesta typu. name nesmí obsahovat vložené hodnoty null.

attr
TypeAttributes

Atributy definovaného typu.

parent
Type

Typ, který definovaný typ rozšiřuje.

typesize
Int32

Celková velikost typu.

Návraty

Objekt TypeBuilder .

Výjimky

Typ s daným názvem existuje v nadřazené sestavení tohoto modulu.

-nebo-

Atributy vnořeného typu jsou nastaveny na typ, který není vnořený.

name je null.

Příklady

Následující příklad vytvoří v aktuálním dynamickém TypeBuilder modulu pomocí CreateType, sestaví a dokončí typ a uloží sestavení.

AssemblyName^ asmname = gcnew AssemblyName;
asmname->Name = "assemfilename.exe";
AssemblyBuilder^ asmbuild = System::Threading::Thread::GetDomain()->
   DefineDynamicAssembly( asmname, AssemblyBuilderAccess::RunAndSave );
ModuleBuilder^ modbuild = asmbuild->DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder^ typebuild1 = modbuild->DefineType( "typename" );
typebuild1->CreateType();
asmbuild->Save( "assemfilename.exe" );
AssemblyName asmname = new AssemblyName();
asmname.Name = "assemfilename.exe";
AssemblyBuilder asmbuild = System.Threading.Thread.GetDomain().
            DefineDynamicAssembly(asmname, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder modbuild = asmbuild.DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder typebuild1 = modbuild.DefineType( "typename" );
typebuild1.CreateType();
asmbuild.Save( "assemfilename.exe" );
Dim asmname As New AssemblyName()
asmname.Name = "assemfilename.exe"
Dim asmbuild As AssemblyBuilder = _
   System.Threading.Thread.GetDomain().DefineDynamicAssembly(asmname, _
   AssemblyBuilderAccess.RunAndSave)
Dim modbuild As ModuleBuilder = _
   asmbuild.DefineDynamicModule("modulename", "assemfilename.exe")
Dim typebuild1 As TypeBuilder = modbuild.DefineType("typename")
typebuild1.CreateType()
asmbuild.Save("assemfilename.exe")

Poznámky

Názvy typů musí být v rámci sestavení jedinečné. Je zakázáno mít dva typy se stejným názvem ve dvou různých modulech sestavení.

Poznámka

Počínaje .NET Framework 2.0 Service Pack 1 už tento člen nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v emitu reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro