ModuleBuilder.DefineType Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Construye un objeto TypeBuilder
. Para definir un tipo de valor, se ha de definir un tipo que se derive de ValueType.
Sobrecargas
DefineType(String, TypeAttributes, Type, Type[]) |
Construye un |
DefineType(String, TypeAttributes, Type, PackingSize, Int32) |
Construye un |
DefineType(String, TypeAttributes, Type, PackingSize) |
Construye un |
DefineType(String, TypeAttributes) |
Construye un |
DefineType(String, TypeAttributes, Type) |
Construye un |
DefineType(String, TypeAttributes, Type, Int32) |
Construye un |
DefineType(String) |
Crea un |
DefineType(String, TypeAttributes, Type, Type[])
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
Construye un TypeBuilder
a partir del nombre de tipo, los atributos, el tipo que extiende el tipo definido y las interfaces que implementa el tipo definido.
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
Ruta de acceso completa del tipo.
name
no puede contener valores null insertados.
- attr
- TypeAttributes
Atributos que se van a asociar al tipo.
- parent
- Type
Tipo que extiende el tipo definido.
- interfaces
- Type[]
Lista de interfaces que implementa el tipo.
Devoluciones
Objeto TypeBuilder
creado con todos los atributos solicitados.
- Atributos
Excepciones
Existe un tipo con el nombre especificado en el ensamblado principal de este módulo.
o bien
Los atributos de tipo anidado se han establecido en un tipo que no está anidado.
name
es null
.
Ejemplos
En el ejemplo siguiente se crea un TypeBuilder objeto en el módulo dinámico actual mediante CreateType
, se compila y se completa el tipo y se guarda el ensamblado.
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")
Comentarios
Los nombres de tipo deben ser únicos dentro de un ensamblado. No puede tener dos tipos con el mismo nombre en dos módulos diferentes de un ensamblado.
Nota
A partir de .NET Framework 2.0 Service Pack 1, este miembro ya no requiere ReflectionPermission con la ReflectionPermissionFlag.ReflectionEmit marca . (Consulte Problemas de seguridad en la emisión de reflexión). Para usar esta funcionalidad, la aplicación debe tener como destino .NET Framework 3.5 o posterior.
Se aplica a
DefineType(String, TypeAttributes, Type, PackingSize, Int32)
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
Construye un TypeBuilder
a partir del nombre de tipo, los atributos, el tipo que extiende el tipo definido, el tamaño de empaquetado del tipo definido y el tamaño total del 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
Ruta de acceso completa del tipo.
name
no puede contener valores null insertados.
- attr
- TypeAttributes
Atributos del tipo definido.
- parent
- Type
Tipo que extiende el tipo definido.
- packingSize
- PackingSize
Tamaño de empaquetado del tipo.
- typesize
- Int32
Tamaño total del tipo.
Devoluciones
Objeto TypeBuilder
creado con todos los atributos solicitados.
Excepciones
Existe un tipo con el nombre especificado en el ensamblado principal de este módulo.
o bien
Los atributos de tipo anidado se han establecido en un tipo que no está anidado.
name
es null
.
Ejemplos
En el ejemplo siguiente se crea un TypeBuilder objeto en el módulo dinámico actual mediante CreateType
, se compila y se completa el tipo y se guarda el ensamblado.
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")
Comentarios
Los nombres de tipo deben ser únicos dentro de un ensamblado. No puede tener dos tipos con el mismo nombre en dos módulos diferentes de un ensamblado.
Nota
A partir de .NET Framework 2.0 Service Pack 1, este miembro ya no requiere ReflectionPermission con la ReflectionPermissionFlag.ReflectionEmit marca . (Consulte Problemas de seguridad en la emisión de reflexión). Para usar esta funcionalidad, la aplicación debe tener como destino .NET Framework 3.5 o posterior.
Se aplica a
DefineType(String, TypeAttributes, Type, PackingSize)
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
Construye un TypeBuilder
a partir del nombre de tipo, los atributos, el tipo que extiende el tipo definido y el tamaño de empaquetado del 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
Ruta de acceso completa del tipo.
name
no puede contener valores null insertados.
- attr
- TypeAttributes
Atributos del tipo definido.
- parent
- Type
Tipo que extiende el tipo definido.
- packsize
- PackingSize
Tamaño de empaquetado del tipo.
Devoluciones
Un objeto TypeBuilder
.
Excepciones
Existe un tipo con el nombre especificado en el ensamblado principal de este módulo.
o bien
Los atributos de tipo anidado se han establecido en un tipo que no está anidado.
name
es null
.
Ejemplos
En el ejemplo siguiente se crea un TypeBuilder objeto en el módulo dinámico actual mediante CreateType
, se compila y se completa el tipo y se guarda el ensamblado.
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")
Comentarios
Los nombres de tipo deben ser únicos dentro de un ensamblado. No puede tener dos tipos con el mismo nombre en dos módulos diferentes de un ensamblado.
Nota
A partir de .NET Framework 2.0 Service Pack 1, este miembro ya no requiere ReflectionPermission con la ReflectionPermissionFlag.ReflectionEmit marca . (Consulte Problemas de seguridad en la emisión de reflexión). Para usar esta funcionalidad, la aplicación debe tener como destino .NET Framework 3.5 o posterior.
Se aplica a
DefineType(String, TypeAttributes)
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
Construye un TypeBuilder
a partir del nombre de tipo y los atributos de tipo especificados.
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
Ruta de acceso completa del tipo.
name
no puede contener valores null insertados.
- attr
- TypeAttributes
Atributos del tipo definido.
Devoluciones
Objeto TypeBuilder
creado con todos los atributos solicitados.
Excepciones
Existe un tipo con el nombre especificado en el ensamblado principal de este módulo.
o bien
Los atributos de tipo anidado se han establecido en un tipo que no está anidado.
name
es null
.
Ejemplos
En el ejemplo siguiente se crea un TypeBuilder objeto en el módulo dinámico actual mediante CreateType
, se compila y se completa el tipo y se guarda el ensamblado.
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")
Comentarios
Los nombres de tipo deben ser únicos dentro de un ensamblado. No puede tener dos tipos con el mismo nombre en dos módulos diferentes de un ensamblado.
Nota
A partir de .NET Framework 2.0 Service Pack 1, este miembro ya no requiere ReflectionPermission con la ReflectionPermissionFlag.ReflectionEmit marca . (Consulte Problemas de seguridad en la emisión de reflexión). Para usar esta funcionalidad, la aplicación debe tener como destino .NET Framework 3.5 o posterior.
Se aplica a
DefineType(String, TypeAttributes, Type)
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
Construye un TypeBuilder
a partir del nombre de tipo, sus atributos y el tipo que extiende el tipo definido.
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
Ruta de acceso completa del tipo.
name
no puede contener valores null insertados.
- attr
- TypeAttributes
Atributo que se va a asociar al tipo.
- parent
- Type
Tipo que extiende el tipo definido.
Devoluciones
Objeto TypeBuilder
creado con todos los atributos solicitados.
Excepciones
Existe un tipo con el nombre especificado en el ensamblado principal de este módulo.
o bien
Los atributos de tipo anidado se han establecido en un tipo que no está anidado.
name
es null
.
Ejemplos
En el ejemplo siguiente se crea un TypeBuilder objeto en el módulo dinámico actual mediante CreateType
, se compila y se completa el tipo y se guarda el ensamblado.
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")
Comentarios
Los nombres de tipo deben ser únicos dentro de un ensamblado. No puede tener dos tipos con el mismo nombre en dos módulos diferentes de un ensamblado.
Nota
A partir de .NET Framework 2.0 Service Pack 1, este miembro ya no requiere ReflectionPermission con la ReflectionPermissionFlag.ReflectionEmit marca . (Consulte Problemas de seguridad en emisión de reflexión). Para usar esta funcionalidad, la aplicación debe tener como destino .NET Framework 3.5 o posterior.
Se aplica a
DefineType(String, TypeAttributes, Type, Int32)
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
Construye un TypeBuilder
a partir del nombre de tipo, los atributos, el tipo que extiende el tipo definido y el tamaño total 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
Parámetros
- name
- String
Ruta de acceso completa del tipo.
name
no puede contener valores null insertados.
- attr
- TypeAttributes
Atributos del tipo definido.
- parent
- Type
Tipo que extiende el tipo definido.
- typesize
- Int32
Tamaño total del tipo.
Devoluciones
Un objeto TypeBuilder
.
Excepciones
Existe un tipo con el nombre especificado en el ensamblado principal de este módulo.
o bien
Los atributos de tipo anidado se han establecido en un tipo que no está anidado.
name
es null
.
Ejemplos
En el ejemplo siguiente se crea un TypeBuilder objeto en el módulo dinámico actual mediante CreateType
, se compila y se completa el tipo y se guarda el ensamblado.
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")
Comentarios
Los nombres de tipo deben ser únicos dentro de un ensamblado. Está prohibido tener dos tipos con el mismo nombre en dos módulos diferentes de un ensamblado.
Nota
A partir de .NET Framework 2.0 Service Pack 1, este miembro ya no requiere ReflectionPermission con la ReflectionPermissionFlag.ReflectionEmit marca . (Consulte Problemas de seguridad en emisión de reflexión). Para usar esta funcionalidad, la aplicación debe tener como destino .NET Framework 3.5 o posterior.
Se aplica a
DefineType(String)
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
- Source:
- ModuleBuilder.cs
Crea un TypeBuilder
para un tipo privado con el nombre especificado en este 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
Ruta de acceso completa del tipo, incluido el espacio de nombres.
name
no puede contener valores null insertados.
Devoluciones
Tipo privado con el nombre especificado.
Excepciones
Existe un tipo con el nombre especificado en el ensamblado principal de este módulo.
o bien
Los atributos de tipo anidado se han establecido en un tipo que no está anidado.
name
es null
.
Ejemplos
En el ejemplo siguiente se crea un TypeBuilder objeto en el módulo dinámico actual mediante CreateType
, se compila y se completa el tipo y se guarda el ensamblado.
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")
Comentarios
Los nombres de tipo deben ser únicos dentro de un ensamblado. No puede tener dos tipos con el mismo nombre en dos módulos diferentes de un ensamblado.
Nota
A partir de .NET Framework 2.0 Service Pack 1, este miembro ya no requiere ReflectionPermission con la ReflectionPermissionFlag.ReflectionEmit marca . (Consulte Problemas de seguridad en emisión de reflexión). Para usar esta funcionalidad, la aplicación debe tener como destino .NET Framework 3.5 o posterior.