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 derive de ValueType.
Sobrecargas
DefineType(String, TypeAttributes, Type, Type[]) |
Constrói um |
DefineType(String, TypeAttributes, Type, PackingSize, Int32) |
Constrói um |
DefineType(String, TypeAttributes, Type, PackingSize) |
Constrói um |
DefineType(String, TypeAttributes) |
Constrói um |
DefineType(String, TypeAttributes, Type) |
Constrói um |
DefineType(String, TypeAttributes, Type, Int32) |
Constrói um |
DefineType(String) |
Constrói um |
DefineType(String, TypeAttributes, Type, Type[])
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
Constrói um TypeBuilder
dado o nome do tipo, os 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);
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 associado 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
Existe um tipo com o nome especificado no assembly pai deste módulo.
- ou -
Atributos de tipo aninhado são definidos em um tipo que não está aninhado.
name
é null
.
Exemplos
O exemplo a seguir cria um TypeBuilder no módulo dinâmico atual usando CreateType
, compila e conclui o tipo e salva o 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")
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.
Observação
A partir do .NET Framework 2.0 Service Pack 1, esse membro não requer ReflectionPermission mais com o ReflectionPermissionFlag.ReflectionEmit sinalizador. (Consulte Problemas de segurança em Emissão de Reflexão.) Para usar essa funcionalidade, seu aplicativo deve ter como destino o .NET Framework 3.5 ou posterior.
Aplica-se a
DefineType(String, TypeAttributes, Type, PackingSize, Int32)
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
Constrói um TypeBuilder
dado o nome do tipo, os 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);
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 de empacotamento do tipo.
- typesize
- Int32
O tamanho total do tipo.
Retornos
Um TypeBuilder
criado com todos os atributos solicitados.
Exceções
Existe um tipo com o nome especificado no assembly pai deste módulo.
- ou -
Atributos de tipo aninhado são definidos em um tipo que não está aninhado.
name
é null
.
Exemplos
O exemplo a seguir cria um TypeBuilder no módulo dinâmico atual usando CreateType
, compila e conclui o tipo e salva o 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")
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.
Observação
A partir do .NET Framework 2.0 Service Pack 1, esse membro não requer ReflectionPermission mais com o ReflectionPermissionFlag.ReflectionEmit sinalizador. (Consulte Problemas de segurança em Emissão de Reflexão.) Para usar essa funcionalidade, seu aplicativo deve ter como destino o .NET Framework 3.5 ou posterior.
Aplica-se a
DefineType(String, TypeAttributes, Type, PackingSize)
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
Constrói um TypeBuilder
dado o 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);
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 de empacotamento do tipo.
Retornos
Um objeto TypeBuilder
.
Exceções
Existe um tipo com o nome especificado no assembly pai deste módulo.
- ou -
Atributos de tipo aninhado são definidos em um tipo que não está aninhado.
name
é null
.
Exemplos
O exemplo a seguir cria um TypeBuilder no módulo dinâmico atual usando CreateType
, compila e conclui o tipo e salva o 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")
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.
Observação
A partir do .NET Framework 2.0 Service Pack 1, esse membro não requer ReflectionPermission mais com o ReflectionPermissionFlag.ReflectionEmit sinalizador. (Consulte Problemas de segurança em Emissão de Reflexão.) Para usar essa funcionalidade, seu aplicativo deve ter como destino o .NET Framework 3.5 ou posterior.
Aplica-se a
DefineType(String, TypeAttributes)
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
Constrói um TypeBuilder
considerando o nome do 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
Existe um tipo com o nome especificado no assembly pai deste módulo.
- ou -
Atributos de tipo aninhado são definidos em um tipo que não está aninhado.
name
é null
.
Exemplos
O exemplo a seguir cria um TypeBuilder no módulo dinâmico atual usando CreateType
, compila e conclui o tipo e salva o 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")
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.
Observação
A partir do .NET Framework 2.0 Service Pack 1, esse membro não requer ReflectionPermission mais com o ReflectionPermissionFlag.ReflectionEmit sinalizador. (Consulte Problemas de segurança em Emissão de Reflexão.) Para usar essa funcionalidade, seu aplicativo deve ter como destino o .NET Framework 3.5 ou posterior.
Aplica-se a
DefineType(String, TypeAttributes, Type)
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
Constrói um TypeBuilder
dado o nome do 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);
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
Existe um tipo com o nome especificado no assembly pai deste módulo.
- ou -
Atributos de tipo aninhado são definidos em um tipo que não está aninhado.
name
é null
.
Exemplos
O exemplo a seguir cria um TypeBuilder no módulo dinâmico atual usando CreateType
, compila e conclui o tipo e salva o 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")
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.
Observação
A partir do .NET Framework 2.0 Service Pack 1, esse membro não requer ReflectionPermission mais com o ReflectionPermissionFlag.ReflectionEmit sinalizador . (Consulte Problemas de segurança na emissão de reflexão.) Para usar essa funcionalidade, seu aplicativo deve ter como destino o .NET Framework 3.5 ou posterior.
Aplica-se a
DefineType(String, TypeAttributes, Type, Int32)
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
Constrói um TypeBuilder
dado o 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);
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 objeto TypeBuilder
.
Exceções
Existe um tipo com o nome especificado no assembly pai deste módulo.
- ou -
Atributos de tipo aninhado são definidos em um tipo que não está aninhado.
name
é null
.
Exemplos
O exemplo a seguir cria um TypeBuilder no módulo dinâmico atual usando CreateType
, compila e conclui o tipo e salva o 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")
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.
Observação
A partir do .NET Framework 2.0 Service Pack 1, esse membro não requer ReflectionPermission mais com o ReflectionPermissionFlag.ReflectionEmit sinalizador . (Consulte Problemas de segurança na emissão de reflexão.) Para usar essa funcionalidade, seu aplicativo deve ter como destino o .NET Framework 3.5 ou posterior.
Aplica-se a
DefineType(String)
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
- Origem:
- ModuleBuilder.cs
Constrói um TypeBuilder
para um tipo particular 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 particular com o nome especificado.
Exceções
Existe um tipo com o nome especificado no assembly pai deste módulo.
- ou -
Atributos de tipo aninhado são definidos em um tipo que não está aninhado.
name
é null
.
Exemplos
O exemplo a seguir cria um TypeBuilder no módulo dinâmico atual usando CreateType
, compila e conclui o tipo e salva o 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")
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.
Observação
A partir do .NET Framework 2.0 Service Pack 1, esse membro não requer ReflectionPermission mais com o ReflectionPermissionFlag.ReflectionEmit sinalizador . (Consulte Problemas de segurança na emissão de reflexão.) Para usar essa funcionalidade, seu aplicativo deve ter como destino o .NET Framework 3.5 ou posterior.