Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo ModuleBuilder.DefineType (String, TypeAttributes, Type, PackingSize, Int32)

 

Data di pubblicazione: ottobre 2016

Costruisce un TypeBuilder assegnato il nome del tipo, gli attributi, il tipo che estende il tipo definito, le dimensioni di compressione del tipo definito e le dimensioni totali del tipo definito.

Spazio dei nomi:   System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

public TypeBuilder DefineType(
	string name,
	TypeAttributes attr,
	Type parent,
	PackingSize packingSize,
	int typesize
)

Parametri

name
Type: System.String

Il percorso completo del tipo. name non può contenere valori Null incorporati.

attr
Type: System.Reflection.TypeAttributes

Gli attributi del tipo definito.

parent
Type: System.Type

Il tipo che estende il tipo definito.

packingSize
Type: System.Reflection.Emit.PackingSize

Dimensione di compressione del tipo.

typesize
Type: System.Int32

Dimensione totale del tipo.

Valore restituito

Type: System.Reflection.Emit.TypeBuilder

Oggetto TypeBuilder creato con tutti gli attributi richiesti.

Exception Condition
ArgumentException

Un tipo con il nome specificato esiste nell'assembly padre del modulo.

-oppure-

Gli attributi di tipo annidato sono impostati su un tipo non annidato.

ArgumentNullException

name è null.

I nomi dei tipi deve essere univoci all'interno di un assembly. È possibile avere due tipi con lo stesso nome in due moduli diversi di un assembly.

System_CAPS_noteNota

A partire dal .NET Framework 2.0 Service Pack 1, questo membro non è più necessario ReflectionPermission con il ReflectionPermissionFlag.ReflectionEmit flag. Per informazioni, vedere Security Issues in Reflection Emit. Per usare questa funzionalità, l'applicazione deve essere destinata a .NET Framework 3.5 o versione successiva.

Nell'esempio seguente viene creato un TypeBuilder nel modulo dinamico corrente tramite CreateType, compilazioni e completato il tipo e viene salvato l'assembly.

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

.NET Framework
Disponibile da 1.1
Silverlight
Disponibile da 2.0
Torna all'inizio
Mostra: