Condividi tramite


ModuleBuilder.DefineType Metodo

Definizione

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 TypeBuilder, dati il nome del tipo, gli attributi, il tipo esteso dal tipo definito e le interfacce da esso implementate.

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

Costruisce un oggetto TypeBuilder, dati il nome del tipo, gli attributi, il tipo esteso dal tipo definito e la relativa dimensione compressa e totale.

DefineType(String, TypeAttributes, Type, PackingSize)

Costruisce un oggetto TypeBuilder, dati il nome del tipo, gli attributi, il tipo esteso dal tipo definito e la dimensione del tipo compresso.

DefineType(String, TypeAttributes)

Costruisce un oggetto TypeBuilder, dati il nome e gli attributi del tipo.

DefineType(String, TypeAttributes, Type)

Costruisce un oggetto TypeBuilder, dati il nome del tipo, i relativi attributi e il tipo esteso dal tipo definito.

DefineType(String, TypeAttributes, Type, Int32)

Costruisce un oggetto TypeBuilder, dati il nome del tipo, gli attributi, il tipo esteso dal tipo definito e la dimensione totale del tipo.

DefineType(String)

Costruisce un oggetto TypeBuilder per un tipo privato con il nome specificato in questo modulo.

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.

Si applica a