ModuleBuilder.DefineType Methode

Definition

Erstellt ein Objekt vom Typ TypeBuilder. Zum Definieren eines Werttyps definieren Sie einen Typ, der von ValueType abgeleitet ist.

Überlädt

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

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen, die Attribute, den vom definierten Typ erweiterten Typ, die Komprimierungsgröße des definierten Typs und die Gesamtgröße des definierten Typs.

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

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen, die Attribute, den vom definierten Typ erweiterten Typ und den vom definierten Typ implementierten Schnittstellen.

DefineType(String, TypeAttributes, Type, PackingSize)

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen, die Attribute, den vom definierten Typ erweiterten Typ und die Komprimierungsgröße des Typs.

DefineType(String, TypeAttributes, Type)

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen, die Attribute und den vom definierten Typ erweiterten Typ.

DefineType(String, TypeAttributes)

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen und die Typattribute.

DefineType(String)

Erstellt einen TypeBuilder für einen privaten Typ mit dem angegebenen Namen in diesem Modul.

DefineType(String, TypeAttributes, Type, Int32)

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen, die Attribute, den vom definierten Typ erweiterten Typ und die Gesamtgröße des Typs.

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

Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen, die Attribute, den vom definierten Typ erweiterten Typ, die Komprimierungsgröße des definierten Typs und die Gesamtgröße des definierten Typs.

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

Parameter

name
String

Der vollständige Pfad des Typs. name darf keine eingebetteten NULL-Werte enthalten.

attr
TypeAttributes

Die Attribute des definierten Typs.

parent
Type

Der vom definierten Typ erweiterte Typ.

packingSize
PackingSize

Die Komprimierungsgröße des Typs.

typesize
Int32

Die Gesamtgröße des Typs.

Gibt zurück

Ein TypeBuilder, der mit allen angeforderten Attributen erstellt wurde.

Ausnahmen

Ein Typ mit dem angegebenen Namen ist in der übergeordneten Assembly dieses Moduls vorhanden.

- oder -

Geschachtelte Typattribute werden für einen Typ festgelegt, der nicht geschachtelt ist.

name ist null.

Beispiele

Im folgenden Beispiel wird ein TypeBuilder im aktuellen dynamischen Modul mit CreateTypeerstellt, erstellt und vervollständigt den Typ und speichert die Assembly.

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

Hinweise

Typnamen müssen innerhalb einer Assembly eindeutig sein. Sie können nicht zwei Typen mit demselben Namen in zwei verschiedenen Modulen einer Assembly haben.

Hinweis

Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflection Emit.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher abzielen.

Gilt für:

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

Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen, die Attribute, den vom definierten Typ erweiterten Typ und den vom definierten Typ implementierten Schnittstellen.

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

Parameter

name
String

Der vollständige Pfad des Typs. name darf keine eingebetteten NULL-Werte enthalten.

attr
TypeAttributes

Die Attribute, die diesem Typ zugeordnet werden sollen.

parent
Type

Der vom definierten Typ erweiterte Typ.

interfaces
Type[]

Die Liste der vom Typ implementierten Schnittstellen.

Gibt zurück

Ein TypeBuilder, der mit allen angeforderten Attributen erstellt wurde.

Attribute

Ausnahmen

Ein Typ mit dem angegebenen Namen ist in der übergeordneten Assembly dieses Moduls vorhanden.

- oder -

Geschachtelte Typattribute werden für einen Typ festgelegt, der nicht geschachtelt ist.

name ist null.

Beispiele

Im folgenden Beispiel wird ein TypeBuilder im aktuellen dynamischen Modul mit CreateTypeerstellt, erstellt und vervollständigt den Typ und speichert die Assembly.

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

Hinweise

Typnamen müssen innerhalb einer Assembly eindeutig sein. Sie können nicht zwei Typen mit demselben Namen in zwei verschiedenen Modulen einer Assembly haben.

Hinweis

Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflection Emit.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher abzielen.

Gilt für:

DefineType(String, TypeAttributes, Type, PackingSize)

Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen, die Attribute, den vom definierten Typ erweiterten Typ und die Komprimierungsgröße des Typs.

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

Parameter

name
String

Der vollständige Pfad des Typs. name darf keine eingebetteten NULL-Werte enthalten.

attr
TypeAttributes

Die Attribute des definierten Typs.

parent
Type

Der vom definierten Typ erweiterte Typ.

packsize
PackingSize

Die Komprimierungsgröße des Typs.

Gibt zurück

Ein TypeBuilder-Objekt.

Ausnahmen

Ein Typ mit dem angegebenen Namen ist in der übergeordneten Assembly dieses Moduls vorhanden.

- oder -

Geschachtelte Typattribute werden für einen Typ festgelegt, der nicht geschachtelt ist.

name ist null.

Beispiele

Im folgenden Beispiel wird ein TypeBuilder im aktuellen dynamischen Modul mit CreateTypeerstellt, erstellt und vervollständigt den Typ und speichert die Assembly.

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

Hinweise

Typnamen müssen innerhalb einer Assembly eindeutig sein. Sie können nicht zwei Typen mit demselben Namen in zwei verschiedenen Modulen einer Assembly haben.

Hinweis

Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflection Emit.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher abzielen.

Gilt für:

DefineType(String, TypeAttributes, Type)

Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen, die Attribute und den vom definierten Typ erweiterten Typ.

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

Parameter

name
String

Der vollständige Pfad des Typs. name darf keine eingebetteten NULL-Werte enthalten.

attr
TypeAttributes

Das Attribut, das diesem Typ zugeordnet werden soll.

parent
Type

Der vom definierten Typ erweiterte Typ.

Gibt zurück

Ein TypeBuilder, der mit allen angeforderten Attributen erstellt wurde.

Ausnahmen

Ein Typ mit dem angegebenen Namen ist in der übergeordneten Assembly dieses Moduls vorhanden.

- oder -

Geschachtelte Typattribute werden für einen Typ festgelegt, der nicht geschachtelt ist.

name ist null.

Beispiele

Im folgenden Beispiel wird ein TypeBuilder im aktuellen dynamischen Modul mit CreateTypeerstellt, erstellt und vervollständigt den Typ und speichert die Assembly.

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

Hinweise

Typnamen müssen innerhalb einer Assembly eindeutig sein. Sie können nicht zwei Typen mit demselben Namen in zwei verschiedenen Modulen einer Assembly haben.

Hinweis

Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflection Emit.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher abzielen.

Gilt für:

DefineType(String, TypeAttributes)

Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen und die Typattribute.

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

Parameter

name
String

Der vollständige Pfad des Typs. name darf keine eingebetteten NULL-Werte enthalten.

attr
TypeAttributes

Die Attribute des definierten Typs.

Gibt zurück

Ein TypeBuilder, der mit allen angeforderten Attributen erstellt wurde.

Ausnahmen

Ein Typ mit dem angegebenen Namen ist in der übergeordneten Assembly dieses Moduls vorhanden.

- oder -

Geschachtelte Typattribute werden für einen Typ festgelegt, der nicht geschachtelt ist.

name ist null.

Beispiele

Im folgenden Beispiel wird ein TypeBuilder im aktuellen dynamischen Modul mit CreateTypeerstellt, erstellt und vervollständigt den Typ und speichert die Assembly.

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

Hinweise

Typnamen müssen innerhalb einer Assembly eindeutig sein. Sie können nicht zwei Typen mit demselben Namen in zwei verschiedenen Modulen einer Assembly haben.

Hinweis

Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflektionsausgabe.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher ausgerichtet sein.

Gilt für:

DefineType(String)

Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs

Erstellt einen TypeBuilder für einen privaten Typ mit dem angegebenen Namen in diesem Modul.

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

Parameter

name
String

Der vollständige Pfad des Typs, einschließlich des Namespaces. name darf keine eingebetteten NULL-Werte enthalten.

Gibt zurück

Ein privater Typ mit dem angegebenen Namen.

Ausnahmen

Ein Typ mit dem angegebenen Namen ist in der übergeordneten Assembly dieses Moduls vorhanden.

- oder -

Geschachtelte Typattribute werden für einen Typ festgelegt, der nicht geschachtelt ist.

name ist null.

Beispiele

Im folgenden Beispiel wird ein TypeBuilder im aktuellen dynamischen Modul erstellt, erstellt CreateTypeund vervollständigt den Typ und speichert die Assembly.

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

Hinweise

Typnamen müssen innerhalb einer Assembly eindeutig sein. Sie können nicht zwei Typen mit demselben Namen in zwei verschiedenen Modulen einer Assembly haben.

Hinweis

Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflektionsausgabe.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher ausgerichtet sein.

Gilt für:

DefineType(String, TypeAttributes, Type, Int32)

Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs
Quelle:
ModuleBuilder.cs

Erstellt einen TypeBuilder anhand der Angaben für den Typnamen, die Attribute, den vom definierten Typ erweiterten Typ und die Gesamtgröße des Typs.

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

Parameter

name
String

Der vollständige Pfad des Typs. name darf keine eingebetteten NULL-Werte enthalten.

attr
TypeAttributes

Die Attribute des definierten Typs.

parent
Type

Der vom definierten Typ erweiterte Typ.

typesize
Int32

Die Gesamtgröße des Typs.

Gibt zurück

Ein TypeBuilder-Objekt.

Ausnahmen

Ein Typ mit dem angegebenen Namen ist in der übergeordneten Assembly dieses Moduls vorhanden.

- oder -

Geschachtelte Typattribute werden für einen Typ festgelegt, der nicht geschachtelt ist.

name ist null.

Beispiele

Im folgenden Beispiel wird ein TypeBuilder im aktuellen dynamischen Modul erstellt, erstellt CreateTypeund vervollständigt den Typ und speichert die Assembly.

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

Hinweise

Typnamen müssen innerhalb einer Assembly eindeutig sein. Es ist verboten, zwei Typen mit demselben Namen in zwei verschiedenen Modulen einer Assembly zu verwenden.

Hinweis

Ab dem .NET Framework 2.0 Service Pack 1 benötigt ReflectionPermission dieses Mitglied nicht mehr das ReflectionPermissionFlag.ReflectionEmit Flag. (Siehe Sicherheitsprobleme in Reflektionsausgabe.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher ausgerichtet sein.

Gilt für: