ModuleBuilder.DefineType Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Maakt een TypeBuilder. Als u een waardetype wilt definiëren, definieert u een type dat is afgeleid van ValueType.
Overloads
| Name | Description |
|---|---|
| DefineType(String, TypeAttributes, Type, PackingSize, Int32) |
Hiermee maakt u een |
| DefineType(String, TypeAttributes, Type, Type[]) |
Hiermee maakt u een |
| DefineType(String, TypeAttributes, Type, Int32) |
Hiermee maakt u een |
| DefineType(String, TypeAttributes, Type, PackingSize) |
Hiermee wordt een |
| DefineType(String, TypeAttributes) |
Hiermee wordt een |
| DefineType(String) |
Hiermee maakt u een |
| DefineType(String, TypeAttributes, Type) |
Hiermee maakt u een |
DefineType(String, TypeAttributes, Type, PackingSize, Int32)
Hiermee maakt u een TypeBuilder bepaalde typenaam, kenmerken, het type dat het gedefinieerde type uitbreidt, de verpakkingsgrootte van het gedefinieerde type en de totale grootte van het gedefinieerde type.
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);
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
Parameters
- name
- String
Het volledige pad van het type.
name kan geen ingesloten null-waarden bevatten.
- attr
- TypeAttributes
De kenmerken van het gedefinieerde type.
- parent
- Type
Het type dat het gedefinieerde type uitbreidt.
- packingSize
- PackingSize
De verpakkingsgrootte van het type.
- typesize
- Int32
De totale grootte van het type.
Retouren
Een TypeBuilder gemaakt met alle aangevraagde kenmerken.
Uitzonderingen
Er bestaat een type met de opgegeven naam in de bovenliggende assembly van deze module.
– of –
Geneste typekenmerken worden ingesteld op een type dat niet is genest.
name is null.
Voorbeelden
In het volgende voorbeeld wordt een TypeBuilder in de huidige dynamische module gemaakt met behulp van CreateType, bouwt en voltooit u het type en slaat u de assembly op.
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")
Opmerkingen
Typenamen moeten uniek zijn binnen een assembly. U kunt geen twee typen met dezelfde naam hebben in twee verschillende modules van een assembly.
Van toepassing op
DefineType(String, TypeAttributes, Type, Type[])
Hiermee maakt u een TypeBuilder bepaalde typenaam, kenmerken, het type dat het gedefinieerde type uitbreidt en de interfaces die door het gedefinieerde type worden geïmplementeerd.
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);
[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
Parameters
- name
- String
Het volledige pad van het type.
name kan geen ingesloten null-waarden bevatten.
- attr
- TypeAttributes
De kenmerken die aan het type moeten worden gekoppeld.
- parent
- Type
Het type dat het gedefinieerde type uitbreidt.
- interfaces
- Type[]
De lijst met interfaces die door het type worden geïmplementeerd.
Retouren
Een TypeBuilder gemaakt met alle aangevraagde kenmerken.
- Kenmerken
Uitzonderingen
Er bestaat een type met de opgegeven naam in de bovenliggende assembly van deze module.
– of –
Geneste typekenmerken worden ingesteld op een type dat niet is genest.
name is null.
Voorbeelden
In het volgende voorbeeld wordt een TypeBuilder in de huidige dynamische module gemaakt met behulp van CreateType, bouwt en voltooit u het type en slaat u de assembly op.
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")
Opmerkingen
Typenamen moeten uniek zijn binnen een assembly. U kunt geen twee typen met dezelfde naam hebben in twee verschillende modules van een assembly.
Van toepassing op
DefineType(String, TypeAttributes, Type, Int32)
Hiermee maakt u een TypeBuilder bepaalde typenaam, de kenmerken, het type dat het gedefinieerde type uitbreidt en de totale grootte van het type.
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);
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
Parameters
- name
- String
Het volledige pad van het type.
name kan geen ingesloten null-waarden bevatten.
- attr
- TypeAttributes
De kenmerken van het gedefinieerde type.
- parent
- Type
Het type dat het gedefinieerde type uitbreidt.
- typesize
- Int32
De totale grootte van het type.
Retouren
Een TypeBuilder-object.
Uitzonderingen
Er bestaat een type met de opgegeven naam in de bovenliggende assembly van deze module.
– of –
Geneste typekenmerken worden ingesteld op een type dat niet is genest.
name is null.
Voorbeelden
In het volgende voorbeeld wordt een TypeBuilder in de huidige dynamische module gemaakt met behulp van CreateType, bouwt en voltooit u het type en slaat u de assembly op.
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")
Opmerkingen
Typenamen moeten uniek zijn binnen een assembly. Het is verboden om twee typen met dezelfde naam in twee verschillende modules van een assembly te hebben.
Van toepassing op
DefineType(String, TypeAttributes, Type, PackingSize)
Hiermee wordt een TypeBuilder bepaalde typenaam samengesteld, de kenmerken, het type dat het gedefinieerde type uitbreidt en de verpakkingsgrootte van het type.
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);
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
Parameters
- name
- String
Het volledige pad van het type.
name kan geen ingesloten null-waarden bevatten.
- attr
- TypeAttributes
De kenmerken van het gedefinieerde type.
- parent
- Type
Het type dat het gedefinieerde type uitbreidt.
- packsize
- PackingSize
De verpakkingsgrootte van het type.
Retouren
Een TypeBuilder-object.
Uitzonderingen
Er bestaat een type met de opgegeven naam in de bovenliggende assembly van deze module.
– of –
Geneste typekenmerken worden ingesteld op een type dat niet is genest.
name is null.
Voorbeelden
In het volgende voorbeeld wordt een TypeBuilder in de huidige dynamische module gemaakt met behulp van CreateType, bouwt en voltooit u het type en slaat u de assembly op.
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")
Opmerkingen
Typenamen moeten uniek zijn binnen een assembly. U kunt geen twee typen met dezelfde naam hebben in twee verschillende modules van een assembly.
Van toepassing op
DefineType(String, TypeAttributes)
Hiermee wordt een TypeBuilder bepaalde typenaam en de typekenmerken samengesteld.
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
Parameters
- name
- String
Het volledige pad van het type.
name kan geen ingesloten null-waarden bevatten.
- attr
- TypeAttributes
De kenmerken van het gedefinieerde type.
Retouren
Een TypeBuilder gemaakt met alle aangevraagde kenmerken.
Uitzonderingen
Er bestaat een type met de opgegeven naam in de bovenliggende assembly van deze module.
– of –
Geneste typekenmerken worden ingesteld op een type dat niet is genest.
name is null.
Voorbeelden
In het volgende voorbeeld wordt een TypeBuilder in de huidige dynamische module gemaakt met behulp van CreateType, bouwt en voltooit u het type en slaat u de assembly op.
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")
Opmerkingen
Typenamen moeten uniek zijn binnen een assembly. U kunt geen twee typen met dezelfde naam hebben in twee verschillende modules van een assembly.
Van toepassing op
DefineType(String)
Hiermee maakt u een TypeBuilder voor een privétype met de opgegeven naam in deze module.
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
Parameters
- name
- String
Het volledige pad van het type, inclusief de naamruimte.
name kan geen ingesloten null-waarden bevatten.
Retouren
Een privétype met de opgegeven naam.
Uitzonderingen
Er bestaat een type met de opgegeven naam in de bovenliggende assembly van deze module.
– of –
Geneste typekenmerken worden ingesteld op een type dat niet is genest.
name is null.
Voorbeelden
In het volgende voorbeeld wordt een TypeBuilder in de huidige dynamische module gemaakt met behulp van CreateType, bouwt en voltooit u het type en slaat u de assembly op.
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")
Opmerkingen
Typenamen moeten uniek zijn binnen een assembly. U kunt geen twee typen met dezelfde naam hebben in twee verschillende modules van een assembly.
Van toepassing op
DefineType(String, TypeAttributes, Type)
Hiermee maakt u een TypeBuilder bepaalde typenaam, de bijbehorende kenmerken en het type dat het gedefinieerde type uitbreidt.
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);
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
Parameters
- name
- String
Het volledige pad van het type.
name kan geen ingesloten null-waarden bevatten.
- attr
- TypeAttributes
Het kenmerk dat moet worden gekoppeld aan het type.
- parent
- Type
Het type dat het gedefinieerde type uitbreidt.
Retouren
Een TypeBuilder gemaakt met alle aangevraagde kenmerken.
Uitzonderingen
Er bestaat een type met de opgegeven naam in de bovenliggende assembly van deze module.
– of –
Geneste typekenmerken worden ingesteld op een type dat niet is genest.
name is null.
Voorbeelden
In het volgende voorbeeld wordt een TypeBuilder in de huidige dynamische module gemaakt met behulp van CreateType, bouwt en voltooit u het type en slaat u de assembly op.
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")
Opmerkingen
Typenamen moeten uniek zijn binnen een assembly. U kunt geen twee typen met dezelfde naam hebben in twee verschillende modules van een assembly.