ModuleBuilder.DefineType Método

Definição

Constrói um TypeBuilder. Para definir um tipo de valor, defina-se um tipo que deriva de ValueType.

Sobrecargas

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

Constrói um TypeBuilder dado nome do tipo, atributos, o tipo que o tipo definido estende, o tamanho do empacotamento do tipo definido e o tamanho total do tipo definido.

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

Constrói um TypeBuilder dado nome do tipo, atributos, o tipo que o tipo definido estende e as interfaces que o tipo definido implementa.

DefineType(String, TypeAttributes, Type, Int32)

Constrói um TypeBuilder dado nome do tipo, os atributos, o tipo que o tipo definido estende e o tamanho total do tipo.

DefineType(String, TypeAttributes, Type, PackingSize)

Constrói um TypeBuilder dado nome do tipo, os atributos, o tipo que o tipo definido estende e o tamanho de empacotamento do tipo.

DefineType(String, TypeAttributes)

Constrói um TypeBuilder dado nome de tipo e atributos de tipo.

DefineType(String)

Constrói a TypeBuilder para um tipo privado com o nome especificado neste módulo.

DefineType(String, TypeAttributes, Type)

Constrói um TypeBuilder dado nome de tipo, os seus atributos e o tipo que o tipo definido estende.

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

Constrói um TypeBuilder dado nome do tipo, atributos, o tipo que o tipo definido estende, o tamanho do empacotamento do tipo definido e o tamanho total do tipo definido.

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

Parâmetros

name
String

O percurso completo do tipo. name não pode conter nulos embutidos.

attr
TypeAttributes

Os atributos do tipo definido.

parent
Type

O tipo que o tipo definido estende.

packingSize
PackingSize

O tamanho da embalagem do tipo.

typesize
Int32

O tamanho total do tipo.

Devoluções

A TypeBuilder criado com todos os atributos pedidos.

Exceções

Existe um tipo com o nome próprio na assembleia principal deste módulo.

-ou-

Os atributos de tipo aninhados são definidos num tipo que não é aninhado.

name é null.

Exemplos

O exemplo seguinte cria um TypeBuilder no módulo dinâmico atual usando CreateType, constrói e completa o tipo, e guarda a montagem.

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

Observações

Os nomes dos tipos devem ser únicos dentro de uma assembleia. Não podes ter dois tipos com o mesmo nome em dois módulos diferentes de um conjunto.

Aplica-se a

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

Constrói um TypeBuilder dado nome do tipo, atributos, o tipo que o tipo definido estende e as interfaces que o tipo definido implementa.

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

Parâmetros

name
String

O percurso completo do tipo. name não pode conter nulos embutidos.

attr
TypeAttributes

Os atributos a serem associados ao tipo.

parent
Type

O tipo que o tipo definido estende.

interfaces
Type[]

A lista de interfaces que o tipo implementa.

Devoluções

A TypeBuilder criado com todos os atributos pedidos.

Atributos

Exceções

Existe um tipo com o nome próprio na assembleia principal deste módulo.

-ou-

Os atributos de tipo aninhados são definidos num tipo que não é aninhado.

name é null.

Exemplos

O exemplo seguinte cria um TypeBuilder no módulo dinâmico atual usando CreateType, constrói e completa o tipo, e guarda a montagem.

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

Observações

Os nomes dos tipos devem ser únicos dentro de uma assembleia. Não podes ter dois tipos com o mesmo nome em dois módulos diferentes de um conjunto.

Aplica-se a

DefineType(String, TypeAttributes, Type, Int32)

Constrói um TypeBuilder dado nome do tipo, os atributos, o tipo que o tipo definido estende e o tamanho total do 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);
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

Parâmetros

name
String

O percurso completo do tipo. name não pode conter nulos embutidos.

attr
TypeAttributes

Os atributos do tipo definido.

parent
Type

O tipo que o tipo definido estende.

typesize
Int32

O tamanho total do tipo.

Devoluções

Um objeto TypeBuilder.

Exceções

Existe um tipo com o nome próprio na assembleia principal deste módulo.

-ou-

Os atributos de tipo aninhados são definidos num tipo que não é aninhado.

name é null.

Exemplos

O exemplo seguinte cria um TypeBuilder no módulo dinâmico atual usando CreateType, constrói e completa o tipo, e guarda a montagem.

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

Observações

Os nomes dos tipos devem ser únicos dentro de uma assembleia. É proibido ter dois tipos com o mesmo nome em dois módulos diferentes de um conjunto.

Aplica-se a

DefineType(String, TypeAttributes, Type, PackingSize)

Constrói um TypeBuilder dado nome do tipo, os atributos, o tipo que o tipo definido estende e o tamanho de empacotamento do tipo.

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

Parâmetros

name
String

O percurso completo do tipo. name não pode conter nulos embutidos.

attr
TypeAttributes

Os atributos do tipo definido.

parent
Type

O tipo que o tipo definido estende.

packsize
PackingSize

O tamanho da embalagem do tipo.

Devoluções

Um objeto TypeBuilder.

Exceções

Existe um tipo com o nome próprio na assembleia principal deste módulo.

-ou-

Os atributos de tipo aninhados são definidos num tipo que não é aninhado.

name é null.

Exemplos

O exemplo seguinte cria um TypeBuilder no módulo dinâmico atual usando CreateType, constrói e completa o tipo, e guarda a montagem.

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

Observações

Os nomes dos tipos devem ser únicos dentro de uma assembleia. Não podes ter dois tipos com o mesmo nome em dois módulos diferentes de um conjunto.

Aplica-se a

DefineType(String, TypeAttributes)

Constrói um TypeBuilder dado nome de tipo e atributos de 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

Parâmetros

name
String

O percurso completo do tipo. name não pode conter nulos embutidos.

attr
TypeAttributes

Os atributos do tipo definido.

Devoluções

A TypeBuilder criado com todos os atributos pedidos.

Exceções

Existe um tipo com o nome próprio na assembleia principal deste módulo.

-ou-

Os atributos de tipo aninhados são definidos num tipo que não é aninhado.

name é null.

Exemplos

O exemplo seguinte cria um TypeBuilder no módulo dinâmico atual usando CreateType, constrói e completa o tipo, e guarda a montagem.

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

Observações

Os nomes dos tipos devem ser únicos dentro de uma assembleia. Não podes ter dois tipos com o mesmo nome em dois módulos diferentes de um conjunto.

Aplica-se a

DefineType(String)

Constrói a TypeBuilder para um tipo privado com o nome especificado neste módulo.

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

Parâmetros

name
String

O caminho completo do tipo, incluindo o espaço de nomes. name não pode conter nulos embutidos.

Devoluções

Um tipo privado com o nome especificado.

Exceções

Existe um tipo com o nome próprio na assembleia principal deste módulo.

-ou-

Os atributos de tipo aninhados são definidos num tipo que não é aninhado.

name é null.

Exemplos

O exemplo seguinte cria um TypeBuilder no módulo dinâmico atual usando CreateType, constrói e completa o tipo, e guarda a montagem.

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

Observações

Os nomes dos tipos devem ser únicos dentro de uma assembleia. Não podes ter dois tipos com o mesmo nome em dois módulos diferentes de um conjunto.

Aplica-se a

DefineType(String, TypeAttributes, Type)

Constrói um TypeBuilder dado nome de tipo, os seus atributos e o tipo que o tipo definido estende.

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

Parâmetros

name
String

O percurso completo do tipo. name não pode conter nulos embutidos.

attr
TypeAttributes

O atributo a ser associado ao tipo.

parent
Type

O tipo que o tipo definido estende.

Devoluções

A TypeBuilder criado com todos os atributos pedidos.

Exceções

Existe um tipo com o nome próprio na assembleia principal deste módulo.

-ou-

Os atributos de tipo aninhados são definidos num tipo que não é aninhado.

name é null.

Exemplos

O exemplo seguinte cria um TypeBuilder no módulo dinâmico atual usando CreateType, constrói e completa o tipo, e guarda a montagem.

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

Observações

Os nomes dos tipos devem ser únicos dentro de uma assembleia. Não podes ter dois tipos com o mesmo nome em dois módulos diferentes de um conjunto.

Aplica-se a