ModuleBuilder.DefineType Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Costruisce un oggetto TypeBuilder
. Per definire un tipo di valore, impostare un tipo che deriva da ValueType.
Overload
DefineType(String, TypeAttributes, Type, Type[]) |
Costruisce un oggetto |
DefineType(String, TypeAttributes, Type, PackingSize, Int32) |
Costruisce un oggetto |
DefineType(String, TypeAttributes, Type, PackingSize) |
Costruisce un oggetto |
DefineType(String, TypeAttributes) |
Costruisce un oggetto |
DefineType(String, TypeAttributes, Type) |
Costruisce un oggetto |
DefineType(String, TypeAttributes, Type, Int32) |
Costruisce un oggetto |
DefineType(String) |
Costruisce un oggetto |
DefineType(String, TypeAttributes, Type, Type[])
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
Costruisce un oggetto TypeBuilder
, dati il nome del tipo, gli attributi, il tipo esteso dal tipo definito e le interfacce da esso implementate.
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
Parametri
- name
- String
Percorso completo del tipo.
name
non può contenere valori Null incorporati.
- attr
- TypeAttributes
Attributi da associare al tipo.
- parent
- Type
Tipo esteso dal tipo definito.
- interfaces
- Type[]
Elenco delle interfacce implementate dal tipo.
Restituisce
TypeBuilder
creato con tutti gli attributi richiesti.
- Attributi
Eccezioni
Nell'assembly padre del modulo esiste un tipo con il nome indicato.
-oppure-
Gli attributi di tipi annidati sono impostati su un tipo non annidato.
name
è null
.
Esempio
L'esempio seguente crea un TypeBuilder oggetto nel modulo dinamico corrente usando CreateType
, compila e completa il tipo e salva l'assembly.
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")
Commenti
I nomi dei tipi devono essere univoci all'interno di un assembly. Non è possibile avere due tipi con lo stesso nome in due moduli diversi di un assembly.
Nota
A partire da .NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag . Vedere Problemi di sicurezza in Reflection Emit. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.
Si applica a
DefineType(String, TypeAttributes, Type, PackingSize, Int32)
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
Costruisce un oggetto TypeBuilder
, dati il nome del tipo, gli attributi, il tipo esteso dal tipo definito e la relativa dimensione compressa e totale.
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
Parametri
- name
- String
Percorso completo del tipo.
name
non può contenere valori Null incorporati.
- attr
- TypeAttributes
Attributi del tipo definito.
- parent
- Type
Tipo esteso dal tipo definito.
- packingSize
- PackingSize
Dimensione di compressione del tipo.
- typesize
- Int32
Dimensione totale del tipo.
Restituisce
TypeBuilder
creato con tutti gli attributi richiesti.
Eccezioni
Nell'assembly padre del modulo esiste un tipo con il nome indicato.
-oppure-
Gli attributi di tipi annidati sono impostati su un tipo non annidato.
name
è null
.
Esempio
L'esempio seguente crea un TypeBuilder oggetto nel modulo dinamico corrente usando CreateType
, compila e completa il tipo e salva l'assembly.
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")
Commenti
I nomi dei tipi devono essere univoci all'interno di un assembly. Non è possibile avere due tipi con lo stesso nome in due moduli diversi di un assembly.
Nota
A partire da .NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag . Vedere Problemi di sicurezza in Reflection Emit. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.
Si applica a
DefineType(String, TypeAttributes, Type, PackingSize)
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
Costruisce un oggetto TypeBuilder
, dati il nome del tipo, gli attributi, il tipo esteso dal tipo definito e la dimensione del tipo compresso.
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
Parametri
- name
- String
Percorso completo del tipo.
name
non può contenere valori Null incorporati.
- attr
- TypeAttributes
Attributi del tipo definito.
- parent
- Type
Tipo esteso dal tipo definito.
- packsize
- PackingSize
Dimensione di compressione del tipo.
Restituisce
Un oggetto TypeBuilder
.
Eccezioni
Nell'assembly padre del modulo esiste un tipo con il nome indicato.
-oppure-
Gli attributi di tipi annidati sono impostati su un tipo non annidato.
name
è null
.
Esempio
L'esempio seguente crea un TypeBuilder oggetto nel modulo dinamico corrente usando CreateType
, compila e completa il tipo e salva l'assembly.
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")
Commenti
I nomi dei tipi devono essere univoci all'interno di un assembly. Non è possibile avere due tipi con lo stesso nome in due moduli diversi di un assembly.
Nota
A partire da .NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag . Vedere Problemi di sicurezza in Reflection Emit. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.
Si applica a
DefineType(String, TypeAttributes)
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
Costruisce un oggetto TypeBuilder
, dati il nome e gli attributi del tipo.
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
Parametri
- name
- String
Percorso completo del tipo.
name
non può contenere valori Null incorporati.
- attr
- TypeAttributes
Attributi del tipo definito.
Restituisce
TypeBuilder
creato con tutti gli attributi richiesti.
Eccezioni
Nell'assembly padre del modulo esiste un tipo con il nome indicato.
-oppure-
Gli attributi di tipi annidati sono impostati su un tipo non annidato.
name
è null
.
Esempio
L'esempio seguente crea un TypeBuilder oggetto nel modulo dinamico corrente usando CreateType
, compila e completa il tipo e salva l'assembly.
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")
Commenti
I nomi dei tipi devono essere univoci all'interno di un assembly. Non è possibile avere due tipi con lo stesso nome in due moduli diversi di un assembly.
Nota
A partire da .NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag . Vedere Problemi di sicurezza in Reflection Emit. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.
Si applica a
DefineType(String, TypeAttributes, Type)
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
Costruisce un oggetto TypeBuilder
, dati il nome del tipo, i relativi attributi e il tipo esteso dal tipo definito.
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
Parametri
- name
- String
Percorso completo del tipo.
name
non può contenere valori Null incorporati.
- attr
- TypeAttributes
Attributo da associare al tipo.
- parent
- Type
Tipo esteso dal tipo definito.
Restituisce
TypeBuilder
creato con tutti gli attributi richiesti.
Eccezioni
Nell'assembly padre del modulo esiste un tipo con il nome indicato.
-oppure-
Gli attributi di tipi annidati sono impostati su un tipo non annidato.
name
è null
.
Esempio
L'esempio seguente crea un TypeBuilder oggetto nel modulo dinamico corrente usando CreateType
, compila e completa il tipo e salva l'assembly.
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")
Commenti
I nomi dei tipi devono essere univoci all'interno di un assembly. Non è possibile avere due tipi con lo stesso nome in due moduli diversi di un assembly.
Nota
A partire da .NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag . Vedere Problemi di sicurezza in Reflection Emit. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.
Si applica a
DefineType(String, TypeAttributes, Type, Int32)
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
Costruisce un oggetto TypeBuilder
, dati il nome del tipo, gli attributi, il tipo esteso dal tipo definito e la dimensione totale del tipo.
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
Parametri
- name
- String
Percorso completo del tipo.
name
non può contenere valori Null incorporati.
- attr
- TypeAttributes
Attributi del tipo definito.
- parent
- Type
Tipo esteso dal tipo definito.
- typesize
- Int32
Dimensione totale del tipo.
Restituisce
Un oggetto TypeBuilder
.
Eccezioni
Nell'assembly padre del modulo esiste un tipo con il nome indicato.
-oppure-
Gli attributi di tipi annidati sono impostati su un tipo non annidato.
name
è null
.
Esempio
L'esempio seguente crea un TypeBuilder oggetto nel modulo dinamico corrente usando CreateType
, compila e completa il tipo e salva l'assembly.
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")
Commenti
I nomi dei tipi devono essere univoci all'interno di un assembly. Non è consentito avere due tipi con lo stesso nome in due moduli diversi di un assembly.
Nota
A partire da .NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag . Vedere Problemi di sicurezza in Reflection Emit. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.
Si applica a
DefineType(String)
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
- Origine:
- ModuleBuilder.cs
Costruisce un oggetto TypeBuilder
per un tipo privato con il nome specificato in questo modulo.
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
Parametri
- name
- String
Percorso completo del tipo, incluso lo spazio dei nomi.
name
non può contenere valori Null incorporati.
Restituisce
Tipo privato con il nome specificato.
Eccezioni
Nell'assembly padre del modulo esiste un tipo con il nome indicato.
-oppure-
Gli attributi di tipi annidati sono impostati su un tipo non annidato.
name
è null
.
Esempio
L'esempio seguente crea un TypeBuilder oggetto nel modulo dinamico corrente usando CreateType
, compila e completa il tipo e salva l'assembly.
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")
Commenti
I nomi dei tipi devono essere univoci all'interno di un assembly. Non è possibile avere due tipi con lo stesso nome in due moduli diversi di un assembly.
Nota
A partire da .NET Framework 2.0 Service Pack 1, questo membro non richiede ReflectionPermission più con il ReflectionPermissionFlag.ReflectionEmit flag . Vedere Problemi di sicurezza in Reflection Emit. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.