ModuleBuilder.DefineType Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří .TypeBuilder
Chcete-li definovat typ hodnoty, definujte typ, který je odvozen od ValueType.
Přetížení
DefineType(String, TypeAttributes, Type, Type[]) |
|
DefineType(String, TypeAttributes, Type, PackingSize, Int32) |
|
DefineType(String, TypeAttributes, Type, PackingSize) |
|
DefineType(String, TypeAttributes) |
|
DefineType(String, TypeAttributes, Type) |
|
DefineType(String, TypeAttributes, Type, Int32) |
|
DefineType(String) |
|
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
nemůže 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ří TypeBuilder
se 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 pro 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é. Ve dvou různých modulech sestavení nelze mít dva typy se stejným názvem.
Poznámka
Počínaje .NET Framework 2.0 Service Pack 1, tento člen již nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v reflexi Emit.) 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, 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
nemůže 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ří TypeBuilder
se 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 pro 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é. Ve dvou různých modulech sestavení nelze mít dva typy se stejným názvem.
Poznámka
Počínaje .NET Framework 2.0 Service Pack 1, tento člen již nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v reflexi Emit.) 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
nemůže 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 pro 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é. Ve dvou různých modulech sestavení nelze mít dva typy se stejným názvem.
Poznámka
Počínaje .NET Framework 2.0 Service Pack 1, tento člen již nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v reflexi Emit.) 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
nemůže obsahovat vložené hodnoty null.
- attr
- TypeAttributes
Atributy definovaného typu.
Návraty
Vytvoří TypeBuilder
se 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 pro 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é. Ve dvou různých modulech sestavení nelze mít dva typy se stejným názvem.
Poznámka
Počínaje .NET Framework 2.0 Service Pack 1, tento člen již nevyžaduje ReflectionPermission s příznakem ReflectionPermissionFlag.ReflectionEmit . (Viz Problémy se zabezpečením v reflexi Emit.) 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
nemůže 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 pro 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é. Ve dvou různých modulech sestavení nelze mít dva typy se stejným názvem.
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
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ší.