ModuleBuilder.DefineType Metoda

Definicja

Tworzy element TypeBuilder. Aby zdefiniować typ wartości, zdefiniuj typ pochodzący z klasy ValueType.

Przeciążenia

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

Tworzy daną TypeBuilder nazwę typu, atrybuty, typ, który typ zdefiniowany rozszerza, rozmiar pakowania zdefiniowanego typu i całkowity rozmiar zdefiniowanego typu.

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

Tworzy daną TypeBuilder nazwę typu, atrybuty, typ rozszerzenia zdefiniowanego typu oraz interfejsy implementowane przez zdefiniowany typ.

DefineType(String, TypeAttributes, Type, PackingSize)

Tworzy daną TypeBuilder nazwę typu, atrybuty, typ, który zdefiniowany typ rozszerza i rozmiar pakowania typu.

DefineType(String, TypeAttributes, Type)

Tworzy daną TypeBuilder nazwę typu, jego atrybuty i typ, który rozszerza zdefiniowany typ.

DefineType(String, TypeAttributes)

Tworzy daną TypeBuilder nazwę typu i atrybuty typu.

DefineType(String)

TypeBuilder Tworzy typ prywatny o określonej nazwie w tym module.

DefineType(String, TypeAttributes, Type, Int32)

Tworzy daną TypeBuilder nazwę typu, atrybuty, typ, który jest rozszerzany przez zdefiniowany typ i całkowity rozmiar typu.

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

Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs

Tworzy daną TypeBuilder nazwę typu, atrybuty, typ, który typ zdefiniowany rozszerza, rozmiar pakowania zdefiniowanego typu i całkowity rozmiar zdefiniowanego 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

Pełna ścieżka typu. name nie może zawierać osadzonych wartości null.

attr
TypeAttributes

Atrybuty zdefiniowanego typu.

parent
Type

Typ, który jest rozszerzany przez zdefiniowany typ.

packingSize
PackingSize

Rozmiar pakowania typu.

typesize
Int32

Całkowity rozmiar typu.

Zwraca

Utworzony TypeBuilder z wszystkimi żądanymi atrybutami.

Wyjątki

Typ o podanej nazwie istnieje w zestawie nadrzędnym tego modułu.

-lub-

Atrybuty typu zagnieżdżonego są ustawiane na typ, który nie jest zagnieżdżony.

name to null.

Przykłady

Poniższy przykład tworzy element TypeBuilder w bieżącym module dynamicznym przy użyciu polecenia CreateType, kompiluje i kończy typ, a następnie zapisuje zestaw.

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

Uwagi

Nazwy typów muszą być unikatowe w zestawie. Nie można mieć dwóch typów o tej samej nazwie w dwóch różnych modułach zestawu.

Uwaga

Począwszy od .NET Framework dodatku Service Pack 2.0, ten element członkowski nie wymaga ReflectionPermission już flagiReflectionPermissionFlag.ReflectionEmit. (Zobacz Problemy z zabezpieczeniami w emitu odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa dla .NET Framework 3.5 lub nowszej.

Dotyczy

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

Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs

Tworzy daną TypeBuilder nazwę typu, atrybuty, typ rozszerzenia zdefiniowanego typu oraz interfejsy implementowane przez zdefiniowany typ.

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

Pełna ścieżka typu. name nie może zawierać osadzonych wartości null.

attr
TypeAttributes

Atrybuty, które mają być skojarzone z typem.

parent
Type

Typ, który jest rozszerzany przez zdefiniowany typ.

interfaces
Type[]

Lista interfejsów implementujących typ.

Zwraca

Utworzony TypeBuilder z wszystkimi żądanymi atrybutami.

Atrybuty

Wyjątki

Typ o podanej nazwie istnieje w zestawie nadrzędnym tego modułu.

-lub-

Atrybuty typu zagnieżdżonego są ustawiane na typ, który nie jest zagnieżdżony.

name to null.

Przykłady

Poniższy przykład tworzy element TypeBuilder w bieżącym module dynamicznym przy użyciu polecenia CreateType, kompiluje i kończy typ, a następnie zapisuje zestaw.

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

Uwagi

Nazwy typów muszą być unikatowe w zestawie. Nie można mieć dwóch typów o tej samej nazwie w dwóch różnych modułach zestawu.

Uwaga

Począwszy od .NET Framework dodatku Service Pack 2.0, ten element członkowski nie wymaga ReflectionPermission już flagiReflectionPermissionFlag.ReflectionEmit. (Zobacz Problemy z zabezpieczeniami w emitu odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa dla .NET Framework 3.5 lub nowszej.

Dotyczy

DefineType(String, TypeAttributes, Type, PackingSize)

Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs

Tworzy daną TypeBuilder nazwę typu, atrybuty, typ, który zdefiniowany typ rozszerza i rozmiar pakowania 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

Pełna ścieżka typu. name nie może zawierać osadzonych wartości null.

attr
TypeAttributes

Atrybuty zdefiniowanego typu.

parent
Type

Typ, który jest rozszerzany przez zdefiniowany typ.

packsize
PackingSize

Rozmiar pakowania typu.

Zwraca

Obiekt TypeBuilder.

Wyjątki

Typ o podanej nazwie istnieje w zestawie nadrzędnym tego modułu.

-lub-

Atrybuty typu zagnieżdżonego są ustawiane na typ, który nie jest zagnieżdżony.

name to null.

Przykłady

Poniższy przykład tworzy element TypeBuilder w bieżącym module dynamicznym przy użyciu polecenia CreateType, kompiluje i kończy typ, a następnie zapisuje zestaw.

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

Uwagi

Nazwy typów muszą być unikatowe w zestawie. Nie można mieć dwóch typów o tej samej nazwie w dwóch różnych modułach zestawu.

Uwaga

Począwszy od .NET Framework dodatku Service Pack 2.0, ten element członkowski nie wymaga ReflectionPermission już flagiReflectionPermissionFlag.ReflectionEmit. (Zobacz Problemy z zabezpieczeniami w emitu odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa dla .NET Framework 3.5 lub nowszej.

Dotyczy

DefineType(String, TypeAttributes, Type)

Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs

Tworzy daną TypeBuilder nazwę typu, jego atrybuty i typ, który rozszerza zdefiniowany 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

Parametry

name
String

Pełna ścieżka typu. name nie może zawierać osadzonych wartości null.

attr
TypeAttributes

Atrybut, który ma być skojarzony z typem.

parent
Type

Typ, który jest rozszerzany przez zdefiniowany typ.

Zwraca

Utworzony TypeBuilder z wszystkimi żądanymi atrybutami.

Wyjątki

Typ o podanej nazwie istnieje w zestawie nadrzędnym tego modułu.

-lub-

Atrybuty typu zagnieżdżonego są ustawiane na typ, który nie jest zagnieżdżony.

name to null.

Przykłady

Poniższy przykład tworzy element TypeBuilder w bieżącym module dynamicznym przy użyciu polecenia CreateType, kompiluje i kończy typ, a następnie zapisuje zestaw.

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

Uwagi

Nazwy typów muszą być unikatowe w zestawie. Nie można mieć dwóch typów o tej samej nazwie w dwóch różnych modułach zestawu.

Uwaga

Począwszy od .NET Framework dodatku Service Pack 2.0, ten element członkowski nie wymaga ReflectionPermission już flagiReflectionPermissionFlag.ReflectionEmit. (Zobacz Problemy z zabezpieczeniami w emitu odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa dla .NET Framework 3.5 lub nowszej.

Dotyczy

DefineType(String, TypeAttributes)

Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs

Tworzy daną TypeBuilder nazwę typu i atrybuty 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

Pełna ścieżka typu. name nie może zawierać osadzonych wartości null.

attr
TypeAttributes

Atrybuty zdefiniowanego typu.

Zwraca

Utworzony TypeBuilder ze wszystkimi żądanymi atrybutami.

Wyjątki

Typ o podanej nazwie istnieje w zestawie nadrzędnym tego modułu.

-lub-

Atrybuty typu zagnieżdżonego są ustawiane na typ, który nie jest zagnieżdżony.

name to null.

Przykłady

Poniższy przykład tworzy element TypeBuilder w bieżącym module dynamicznym przy użyciu polecenia CreateType, kompiluje i kończy typ, a następnie zapisuje zestaw.

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

Uwagi

Nazwy typów muszą być unikatowe w zestawie. Nie można mieć dwóch typów o tej samej nazwie w dwóch różnych modułach zestawu.

Uwaga

Począwszy od .NET Framework 2.0 z dodatkiem Service Pack 1, ten element członkowski nie wymaga ReflectionPermission już flagi ReflectionPermissionFlag.ReflectionEmit . (Zobacz Problemy z zabezpieczeniami w emisji odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa dla .NET Framework 3.5 lub nowszej.

Dotyczy

DefineType(String)

Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs

Tworzy element TypeBuilder dla typu prywatnego o określonej nazwie w tym 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

Parametry

name
String

Pełna ścieżka typu, w tym przestrzeń nazw. name Program nie może zawierać osadzonych wartości null.

Zwraca

Typ prywatny o określonej nazwie.

Wyjątki

Typ o podanej nazwie istnieje w zestawie nadrzędnym tego modułu.

-lub-

Atrybuty typu zagnieżdżonego są ustawiane dla typu, który nie jest zagnieżdżony.

name to null.

Przykłady

Poniższy przykład tworzy TypeBuilder obiekt w bieżącym module dynamicznym przy użyciu polecenia CreateType, kompiluje i kończy typ, a następnie zapisuje zestaw.

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

Uwagi

Nazwy typów muszą być unikatowe w zestawie. Nie można mieć dwóch typów o tej samej nazwie w dwóch różnych modułach zestawu.

Uwaga

Począwszy od .NET Framework 2.0 z dodatkiem Service Pack 1, ten element członkowski nie wymaga ReflectionPermission już flagi ReflectionPermissionFlag.ReflectionEmit . (Zobacz Problemy z zabezpieczeniami w emisji odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa dla .NET Framework 3.5 lub nowszej.

Dotyczy

DefineType(String, TypeAttributes, Type, Int32)

Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs
Źródło:
ModuleBuilder.cs

Tworzy daną TypeBuilder nazwę typu, atrybuty, typ, który jest rozszerzany przez zdefiniowany typ i całkowity rozmiar 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

Pełna ścieżka typu. name Program nie może zawierać osadzonych wartości null.

attr
TypeAttributes

Atrybuty zdefiniowanego typu.

parent
Type

Typ, który jest rozszerzany przez zdefiniowany typ.

typesize
Int32

Całkowity rozmiar typu.

Zwraca

Obiekt TypeBuilder.

Wyjątki

Typ o podanej nazwie istnieje w zestawie nadrzędnym tego modułu.

-lub-

Atrybuty typu zagnieżdżonego są ustawiane dla typu, który nie jest zagnieżdżony.

name to null.

Przykłady

Poniższy przykład tworzy TypeBuilder obiekt w bieżącym module dynamicznym przy użyciu polecenia CreateType, kompiluje i kończy typ, a następnie zapisuje zestaw.

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

Uwagi

Nazwy typów muszą być unikatowe w zestawie. Nie można mieć dwóch typów o tej samej nazwie w dwóch różnych modułach zestawu.

Uwaga

Począwszy od .NET Framework 2.0 z dodatkiem Service Pack 1, ten element członkowski nie wymaga ReflectionPermission już flagi ReflectionPermissionFlag.ReflectionEmit . (Zobacz Problemy z zabezpieczeniami w emisji odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa dla .NET Framework 3.5 lub nowszej.

Dotyczy