Bagikan melalui


ModuleBuilder.DefineType Metode

Definisi

Membangun sebuah TypeBuilder. Untuk menentukan jenis nilai, tentukan jenis yang berasal dari ValueType.

Overload

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

Membuat TypeBuilder nama jenis, atribut, jenis yang diperluas oleh jenis yang ditentukan, dan antarmuka yang diimplementasikan oleh jenis yang ditentukan.

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

Membuat TypeBuilder nama jenis, atribut, jenis yang diperluas oleh jenis yang ditentukan, ukuran pengemasan dari jenis yang ditentukan, dan ukuran total jenis yang ditentukan.

DefineType(String, TypeAttributes, Type, PackingSize)

Membuat nama jenis tertentu TypeBuilder , atribut, jenis yang diperluas oleh jenis yang ditentukan, dan ukuran pengemasan jenis.

DefineType(String, TypeAttributes)

Membuat nama jenis dan atribut jenis yang TypeBuilder diberikan.

DefineType(String, TypeAttributes, Type)

Membuat nama jenis tertentu TypeBuilder , atributnya, dan jenis yang diperluas oleh jenis yang ditentukan.

DefineType(String, TypeAttributes, Type, Int32)

Membuat nama jenis tertentu TypeBuilder , atribut, jenis yang diperluas oleh jenis yang ditentukan, dan ukuran total jenis.

DefineType(String)

Membuat TypeBuilder untuk jenis privat dengan nama yang ditentukan dalam modul ini.

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

Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs

Membuat TypeBuilder nama jenis, atribut, jenis yang diperluas oleh jenis yang ditentukan, dan antarmuka yang diimplementasikan oleh jenis yang ditentukan.

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

Jalur lengkap jenis. name tidak boleh berisi null yang disematkan.

attr
TypeAttributes

Atribut yang akan dikaitkan dengan jenis .

parent
Type

Jenis yang diperluas oleh jenis yang ditentukan.

interfaces
Type[]

Daftar antarmuka yang diterapkan jenis.

Mengembalikan

dibuat TypeBuilder dengan semua atribut yang diminta.

Atribut

Pengecualian

Jenis dengan nama yang diberikan ada di rakitan induk modul ini.

-atau-

Atribut jenis berlapis diatur pada jenis yang tidak ditumpuk.

nameadalah null.

Contoh

Contoh berikut membuat TypeBuilder dalam modul dinamis saat ini menggunakan CreateType, membangun dan menyelesaikan jenis, dan menyimpan perakitan.

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

Keterangan

Nama jenis harus unik dalam rakitan. Anda tidak dapat memiliki dua jenis dengan nama yang sama dalam dua modul perakitan yang berbeda.

Catatan

Dimulai dengan .NET Framework 2.0 Paket Layanan 1, anggota ini tidak lagi memerlukan ReflectionPermission bendera ReflectionPermissionFlag.ReflectionEmit . (Lihat Masalah Keamanan dalam Pancaran Pantulan.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

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

Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs

Membuat TypeBuilder nama jenis, atribut, jenis yang diperluas oleh jenis yang ditentukan, ukuran pengemasan dari jenis yang ditentukan, dan ukuran total jenis yang ditentukan.

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

Jalur lengkap jenis. name tidak boleh berisi null yang disematkan.

attr
TypeAttributes

Atribut dari jenis yang ditentukan.

parent
Type

Jenis yang diperluas oleh jenis yang ditentukan.

packingSize
PackingSize

Ukuran kemasan jenis.

typesize
Int32

Ukuran total jenis.

Mengembalikan

dibuat TypeBuilder dengan semua atribut yang diminta.

Pengecualian

Jenis dengan nama yang diberikan ada di rakitan induk modul ini.

-atau-

Atribut jenis berlapis diatur pada jenis yang tidak ditumpuk.

nameadalah null.

Contoh

Contoh berikut membuat TypeBuilder dalam modul dinamis saat ini menggunakan CreateType, membangun dan menyelesaikan jenis, dan menyimpan perakitan.

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

Keterangan

Nama jenis harus unik dalam rakitan. Anda tidak dapat memiliki dua jenis dengan nama yang sama dalam dua modul perakitan yang berbeda.

Catatan

Dimulai dengan .NET Framework 2.0 Paket Layanan 1, anggota ini tidak lagi memerlukan ReflectionPermission bendera ReflectionPermissionFlag.ReflectionEmit . (Lihat Masalah Keamanan dalam Pancaran Pantulan.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

DefineType(String, TypeAttributes, Type, PackingSize)

Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs

Membuat nama jenis tertentu TypeBuilder , atribut, jenis yang diperluas oleh jenis yang ditentukan, dan ukuran pengemasan jenis.

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

Jalur lengkap jenis. name tidak boleh berisi null yang disematkan.

attr
TypeAttributes

Atribut dari jenis yang ditentukan.

parent
Type

Jenis yang diperluas oleh jenis yang ditentukan.

packsize
PackingSize

Ukuran kemasan jenis.

Mengembalikan

Objek TypeBuilder.

Pengecualian

Jenis dengan nama yang diberikan ada di rakitan induk modul ini.

-atau-

Atribut jenis berlapis diatur pada jenis yang tidak ditumpuk.

nameadalah null.

Contoh

Contoh berikut membuat TypeBuilder dalam modul dinamis saat ini menggunakan CreateType, membangun dan menyelesaikan jenis, dan menyimpan perakitan.

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

Keterangan

Nama jenis harus unik dalam rakitan. Anda tidak dapat memiliki dua jenis dengan nama yang sama dalam dua modul perakitan yang berbeda.

Catatan

Dimulai dengan .NET Framework 2.0 Paket Layanan 1, anggota ini tidak lagi memerlukan ReflectionPermission bendera ReflectionPermissionFlag.ReflectionEmit . (Lihat Masalah Keamanan dalam Pancaran Pantulan.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

DefineType(String, TypeAttributes)

Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs

Membuat nama jenis dan atribut jenis yang TypeBuilder diberikan.

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

Jalur lengkap jenis. name tidak boleh berisi null yang disematkan.

attr
TypeAttributes

Atribut dari jenis yang ditentukan.

Mengembalikan

dibuat TypeBuilder dengan semua atribut yang diminta.

Pengecualian

Jenis dengan nama yang diberikan ada di rakitan induk modul ini.

-atau-

Atribut jenis berlapis diatur pada jenis yang tidak ditumpuk.

nameadalah null.

Contoh

Contoh berikut membuat TypeBuilder dalam modul dinamis saat ini menggunakan CreateType, membangun dan menyelesaikan jenis, dan menyimpan perakitan.

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

Keterangan

Nama jenis harus unik dalam rakitan. Anda tidak dapat memiliki dua jenis dengan nama yang sama dalam dua modul perakitan yang berbeda.

Catatan

Dimulai dengan .NET Framework 2.0 Paket Layanan 1, anggota ini tidak lagi memerlukan ReflectionPermission bendera ReflectionPermissionFlag.ReflectionEmit . (Lihat Masalah Keamanan dalam Pancaran Pantulan.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

DefineType(String, TypeAttributes, Type)

Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs

Membuat nama jenis tertentu TypeBuilder , atributnya, dan jenis yang diperluas oleh jenis yang ditentukan.

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

Jalur lengkap jenis. name tidak boleh berisi null yang disematkan.

attr
TypeAttributes

Atribut yang akan dikaitkan dengan jenis .

parent
Type

Jenis yang diperluas oleh jenis yang ditentukan.

Mengembalikan

Dibuat TypeBuilder dengan semua atribut yang diminta.

Pengecualian

Jenis dengan nama yang diberikan ada di rakitan induk modul ini.

-atau-

Atribut jenis berlapis diatur pada jenis yang tidak ditumpuk.

nameadalah null.

Contoh

Contoh berikut membuat TypeBuilder dalam modul dinamis saat ini menggunakan CreateType, membangun dan menyelesaikan jenis, dan menyimpan perakitan.

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

Keterangan

Nama jenis harus unik dalam rakitan. Anda tidak dapat memiliki dua jenis dengan nama yang sama dalam dua modul perakitan yang berbeda.

Catatan

Dimulai dengan .NET Framework 2.0 Service Pack 1, anggota ini tidak lagi memerlukan ReflectionPermission dengan ReflectionPermissionFlag.ReflectionEmit bendera . (Lihat Masalah Keamanan dalam Pancaran Pancaran.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

DefineType(String, TypeAttributes, Type, Int32)

Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs

Membuat nama jenis tertentu TypeBuilder , atribut, jenis yang diperluas oleh jenis yang ditentukan, dan ukuran total jenis.

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

Jalur lengkap jenis. name tidak boleh berisi null yang disematkan.

attr
TypeAttributes

Atribut dari jenis yang ditentukan.

parent
Type

Jenis yang diperluas oleh jenis yang ditentukan.

typesize
Int32

Ukuran total jenis.

Mengembalikan

Objek TypeBuilder.

Pengecualian

Jenis dengan nama yang diberikan ada di rakitan induk modul ini.

-atau-

Atribut jenis berlapis diatur pada jenis yang tidak berlapis.

nameadalah null.

Contoh

Contoh berikut membuat TypeBuilder dalam modul dinamis saat ini menggunakan CreateType, membangun dan menyelesaikan jenis, dan menyimpan perakitan.

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

Keterangan

Nama jenis harus unik dalam rakitan. Dilarang memiliki dua jenis dengan nama yang sama dalam dua modul perakitan yang berbeda.

Catatan

Dimulai dengan .NET Framework 2.0 Service Pack 1, anggota ini tidak lagi memerlukan ReflectionPermission dengan ReflectionPermissionFlag.ReflectionEmit bendera . (Lihat Masalah Keamanan dalam Pancaran Pancaran.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

DefineType(String)

Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs
Sumber:
ModuleBuilder.cs

Membuat TypeBuilder untuk jenis privat dengan nama yang ditentukan dalam modul ini.

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

Jalur lengkap jenis, termasuk namespace layanan. name tidak boleh berisi null yang disematkan.

Mengembalikan

Jenis privat dengan nama yang ditentukan.

Pengecualian

Jenis dengan nama yang diberikan ada di rakitan induk modul ini.

-atau-

Atribut jenis berlapis diatur pada jenis yang tidak berlapis.

nameadalah null.

Contoh

Contoh berikut membuat TypeBuilder dalam modul dinamis saat ini menggunakan CreateType, membangun dan menyelesaikan jenis, dan menyimpan perakitan.

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

Keterangan

Nama jenis harus unik dalam rakitan. Anda tidak dapat memiliki dua jenis dengan nama yang sama dalam dua modul perakitan yang berbeda.

Catatan

Dimulai dengan .NET Framework 2.0 Service Pack 1, anggota ini tidak lagi memerlukan ReflectionPermission dengan ReflectionPermissionFlag.ReflectionEmit bendera . (Lihat Masalah Keamanan dalam Pancaran Pancaran.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk