ModuleBuilder.DefineType Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Constrói um TypeBuilder. Para definir um tipo de valor, defina um tipo que deriva de ValueType.
Sobrecargas
| Nome | Description |
|---|---|
| DefineType(String, TypeAttributes, Type, PackingSize, Int32) |
Constrói um |
| DefineType(String, TypeAttributes, Type, Type[]) |
Constrói um |
| DefineType(String, TypeAttributes, Type, Int32) |
Constrói um |
| DefineType(String, TypeAttributes, Type, PackingSize) |
Constrói um |
| DefineType(String, TypeAttributes) |
Constrói um |
| DefineType(String) |
Constrói um |
| DefineType(String, TypeAttributes, Type) |
Constrói um |
DefineType(String, TypeAttributes, Type, PackingSize, Int32)
Constrói um TypeBuilder determinado nome de tipo, atributos, o tipo que o tipo definido estende, o tamanho de 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 caminho completo do tipo.
name não pode conter nulos inseridos.
- 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.
Retornos
Um TypeBuilder criado com todos os atributos solicitados.
Exceções
Um tipo com o nome fornecido existe no assembly pai deste módulo.
-ou-
Atributos de tipo aninhados são definidos em um tipo que não está aninhado.
name é null.
Exemplos
O exemplo a seguir cria um TypeBuilder módulo dinâmico atual usando CreateType, compila e conclui o tipo e salva o 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" );
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")
Comentários
Os nomes de tipo devem ser exclusivos em um assembly. Você não pode ter dois tipos com o mesmo nome em dois módulos diferentes de um assembly.
Aplica-se a
DefineType(String, TypeAttributes, Type, Type[])
Constrói um TypeBuilder determinado nome de 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 caminho completo do tipo.
name não pode conter nulos inseridos.
- 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.
Retornos
Um TypeBuilder criado com todos os atributos solicitados.
- Atributos
Exceções
Um tipo com o nome fornecido existe no assembly pai deste módulo.
-ou-
Atributos de tipo aninhados são definidos em um tipo que não está aninhado.
name é null.
Exemplos
O exemplo a seguir cria um TypeBuilder módulo dinâmico atual usando CreateType, compila e conclui o tipo e salva o 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" );
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")
Comentários
Os nomes de tipo devem ser exclusivos em um assembly. Você não pode ter dois tipos com o mesmo nome em dois módulos diferentes de um assembly.
Aplica-se a
DefineType(String, TypeAttributes, Type, Int32)
Constrói um TypeBuilder determinado nome de 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 caminho completo do tipo.
name não pode conter nulos inseridos.
- attr
- TypeAttributes
Os atributos do tipo definido.
- parent
- Type
O tipo que o tipo definido estende.
- typesize
- Int32
O tamanho total do tipo.
Retornos
Um TypeBuilder objeto.
Exceções
Um tipo com o nome fornecido existe no assembly pai deste módulo.
-ou-
Atributos de tipo aninhados são definidos em um tipo que não está aninhado.
name é null.
Exemplos
O exemplo a seguir cria um TypeBuilder módulo dinâmico atual usando CreateType, compila e conclui o tipo e salva o 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" );
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")
Comentários
Os nomes de tipo devem ser exclusivos em um assembly. É proibido ter dois tipos com o mesmo nome em dois módulos diferentes de um assembly.
Aplica-se a
DefineType(String, TypeAttributes, Type, PackingSize)
Constrói um TypeBuilder determinado nome de tipo, os atributos, o tipo que o tipo definido estende e o tamanho da embalagem 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 caminho completo do tipo.
name não pode conter nulos inseridos.
- attr
- TypeAttributes
Os atributos do tipo definido.
- parent
- Type
O tipo que o tipo definido estende.
- packsize
- PackingSize
O tamanho da embalagem do tipo.
Retornos
Um TypeBuilder objeto.
Exceções
Um tipo com o nome fornecido existe no assembly pai deste módulo.
-ou-
Atributos de tipo aninhados são definidos em um tipo que não está aninhado.
name é null.
Exemplos
O exemplo a seguir cria um TypeBuilder módulo dinâmico atual usando CreateType, compila e conclui o tipo e salva o 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" );
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")
Comentários
Os nomes de tipo devem ser exclusivos em um assembly. Você não pode ter dois tipos com o mesmo nome em dois módulos diferentes de um assembly.
Aplica-se a
DefineType(String, TypeAttributes)
Constrói um TypeBuilder determinado nome de tipo e os 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 caminho completo do tipo.
name não pode conter nulos inseridos.
- attr
- TypeAttributes
Os atributos do tipo definido.
Retornos
Um TypeBuilder criado com todos os atributos solicitados.
Exceções
Um tipo com o nome fornecido existe no assembly pai deste módulo.
-ou-
Atributos de tipo aninhados são definidos em um tipo que não está aninhado.
name é null.
Exemplos
O exemplo a seguir cria um TypeBuilder módulo dinâmico atual usando CreateType, compila e conclui o tipo e salva o 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" );
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")
Comentários
Os nomes de tipo devem ser exclusivos em um assembly. Você não pode ter dois tipos com o mesmo nome em dois módulos diferentes de um assembly.
Aplica-se a
DefineType(String)
Constrói um 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 namespace.
name não pode conter nulos inseridos.
Retornos
Um tipo privado com o nome especificado.
Exceções
Um tipo com o nome fornecido existe no assembly pai deste módulo.
-ou-
Atributos de tipo aninhados são definidos em um tipo que não está aninhado.
name é null.
Exemplos
O exemplo a seguir cria um TypeBuilder módulo dinâmico atual usando CreateType, compila e conclui o tipo e salva o 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" );
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")
Comentários
Os nomes de tipo devem ser exclusivos em um assembly. Você não pode ter dois tipos com o mesmo nome em dois módulos diferentes de um assembly.
Aplica-se a
DefineType(String, TypeAttributes, Type)
Constrói um TypeBuilder determinado nome de tipo, 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 caminho completo do tipo.
name não pode conter nulos inseridos.
- attr
- TypeAttributes
O atributo a ser associado ao tipo.
- parent
- Type
O tipo que o tipo definido estende.
Retornos
Um TypeBuilder criado com todos os atributos solicitados.
Exceções
Um tipo com o nome fornecido existe no assembly pai deste módulo.
-ou-
Atributos de tipo aninhados são definidos em um tipo que não está aninhado.
name é null.
Exemplos
O exemplo a seguir cria um TypeBuilder módulo dinâmico atual usando CreateType, compila e conclui o tipo e salva o 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" );
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")
Comentários
Os nomes de tipo devem ser exclusivos em um assembly. Você não pode ter dois tipos com o mesmo nome em dois módulos diferentes de um assembly.