ModuleBuilder.DefineType Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy obiekt TypeBuilder
. Aby zdefiniować typ wartości, zdefiniuj typ pochodzący z ValueTypeklasy .
Przeciążenia
DefineType(String, TypeAttributes, Type, Type[]) |
Tworzy daną |
DefineType(String, TypeAttributes, Type, PackingSize, Int32) |
Tworzy daną |
DefineType(String, TypeAttributes, Type, PackingSize) |
Tworzy daną |
DefineType(String, TypeAttributes) |
Tworzy daną |
DefineType(String, TypeAttributes, Type) |
Tworzy daną |
DefineType(String, TypeAttributes, Type, Int32) |
Tworzy daną |
DefineType(String) |
|
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, 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, 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)
- Ź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
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)
- Ź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, 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
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 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. Zabronione jest posiadanie 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)
- Źródło:
- ModuleBuilder.cs
- Źródło:
- ModuleBuilder.cs
- Źródło:
- ModuleBuilder.cs
TypeBuilder
Tworzy typ prywatny 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
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 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.