ModuleBuilder.DefineType Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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, Type[]) |
Erstellt einen |
DefineType(String, TypeAttributes, Type, PackingSize, Int32) |
Erstellt einen |
DefineType(String, TypeAttributes, Type, PackingSize) |
Erstellt einen |
DefineType(String, TypeAttributes) |
Erstellt einen |
DefineType(String, TypeAttributes, Type) |
Erstellt einen |
DefineType(String, TypeAttributes, Type, Int32) |
Erstellt einen |
DefineType(String) |
Erstellt einen |
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 erstellt, erstellt CreateType
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, 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 erstellt, erstellt CreateType
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, 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 erstellt, erstellt CreateType
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, 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 erstellt, erstellt CreateType
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, 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 erstellt, erstellt CreateType
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, 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 mit CreateType
erstellt, 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. 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 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)
- 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 mit CreateType
erstellt, 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.