ModuleBuilder.DefineType Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Membangun sebuah TypeBuilder
. Untuk menentukan jenis nilai, tentukan jenis yang berasal dari ValueType.
Overload
DefineType(String, TypeAttributes, Type, Type[]) |
Membuat |
DefineType(String, TypeAttributes, Type, PackingSize, Int32) |
Membuat |
DefineType(String, TypeAttributes, Type, PackingSize) |
Membuat nama jenis tertentu |
DefineType(String, TypeAttributes) |
Membuat nama jenis dan atribut jenis yang |
DefineType(String, TypeAttributes, Type) |
Membuat nama jenis tertentu |
DefineType(String, TypeAttributes, Type, Int32) |
Membuat nama jenis tertentu |
DefineType(String) |
Membuat |
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.
name
adalah 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.
name
adalah 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.
name
adalah 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.
name
adalah 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.
name
adalah 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.
name
adalah 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.
name
adalah 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.