Activator.CreateInstance Método

Definición

Crea una instancia del tipo especificado usando el constructor que mejor coincida con los parámetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

Sobrecargas

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Crea una instancia del tipo cuyo nombre se especifica en el dominio remoto indicado, usando el ensamblado con nombre y el constructor que se adapta mejor a los parámetros especificados.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Crea una instancia del tipo cuyo nombre se especifica en el dominio remoto indicado, usando el ensamblado con nombre y el constructor que se adapta mejor a los parámetros especificados.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Crea una instancia del tipo cuyo nombre se especifica, usando el ensamblado con nombre y el constructor que mejor coincida con los parámetros especificados.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])

Crea una instancia del tipo especificado usando el constructor que mejor coincida con los parámetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)

Crea una instancia del tipo especificado usando el constructor que mejor coincida con los parámetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Object[], Object[])

Crea una instancia del tipo especificado usando el constructor que mejor coincida con los parámetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(String, String, Object[])

Crea una instancia del tipo cuyo nombre se especifica, usando el ensamblado con nombre y el constructor sin parámetros.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Crea una instancia del tipo cuyo nombre se especifica, usando el ensamblado con nombre y el constructor que mejor coincida con los parámetros especificados.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

CreateInstance(Type, Object[])

Crea una instancia del tipo especificado usando el constructor que mejor coincida con los parámetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Boolean)

Crea una instancia del tipo especificado usando el constructor sin parámetros de ese tipo.Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(String, String)

Crea una instancia del tipo cuyo nombre se especifica, usando el ensamblado con nombre y el constructor sin parámetros.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

CreateInstance(ActivationContext, String[])

Crea una instancia del tipo designado por el objeto ActivationContext especificado y activada con los datos de activación personalizados especificados.Creates an instance of the type that is designated by the specified ActivationContext object and activated with the specified custom activation data.

CreateInstance(Type)

Crea una instancia del tipo especificado usando el constructor sin parámetros de ese tipo.Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(ActivationContext)

Crea una instancia del tipo designado por el objeto ActivationContext especificado.Creates an instance of the type designated by the specified ActivationContext object.

CreateInstance(AppDomain, String, String)

Crea una instancia del tipo cuyo nombre se especifica en el dominio remoto indicado, usando el ensamblado con nombre y el constructor sin parámetros.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and parameterless constructor.

CreateInstance<T>()

Crea una instancia del tipo designado por el parámetro de tipo genérico especificado, usando el constructor sin parámetros.Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Advertencia

Esta API está ya obsoleta.

Crea una instancia del tipo cuyo nombre se especifica en el dominio remoto indicado, usando el ensamblado con nombre y el constructor que se adapta mejor a los parámetros especificados.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityAttributes);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle

Parámetros

domain
AppDomain

Dominio en el que se crea el tipo denominado typeName.The domain where the type named typeName is created.

assemblyName
String

Nombre del ensamblado en el que se busca el tipo denominado typeName.The name of the assembly where the type named typeName is sought. Si assemblyName es null, se busca en el ensamblado que se está ejecutando.If assemblyName is null, the executing assembly is searched.

typeName
String

Nombre completo del tipo preferido.The fully qualified name of the preferred type.

ignoreCase
Boolean

true para especificar que en la búsqueda de typeName no se distingue entre mayúsculas y minúsculas; false para especificar que en la búsqueda se tenga en cuenta el uso de mayúsculas y minúsculas.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

Combinación de cero o más marcadores de bits que afectan a la búsqueda del constructor de typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Si bindingAttr es cero, se realiza una búsqueda de constructores públicos que distingue mayúsculas de minúsculas.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Objeto que usa bindingAttr y args para buscar e identificar el constructor de typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Si binder es null, se usa el enlazador predeterminado.If binder is null, the default binder is used.

args
Object[]

Matriz de argumentos que coinciden en número, orden y tipo con los parámetros del constructor al que se llama.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Si args es una matriz vacía o null, se invoca al constructor que no toma parámetros (constructor sin parámetros).If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Información específica de la referencia cultural que controla la conversión de args en los tipos formales declarados para el constructor de typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Si culture es null, se usa CultureInfo del subproceso actual.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

Matriz de uno o más atributos que puede participar en la activación.An array of one or more attributes that can participate in activation. Normalmente, una matriz que contiene un solo objeto UrlAttribute.This is typically an array that contains a single UrlAttribute object. El atributo UrlAttribute especifica la dirección URL necesaria para activar un objeto remoto.The UrlAttribute specifies the URL that is required to activate a remote object.

securityAttributes
Evidence

Información usada para tomar decisiones sobre la directiva de seguridad y conceder permisos de código.Information used to make security policy decisions and grant code permissions.

Devoluciones

Identificador que debe desempaquetarse para obtener acceso a la instancia recién creada.A handle that must be unwrapped to access the newly created instance.

Atributos

Excepciones

domain o typeName es null.domain or typeName is null.

No se encontró ningún constructor coincidente.No matching constructor was found.

No se encontró typename en assemblyName.typename was not found in assemblyName.

No se encontró assemblyName.assemblyName was not found.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El constructor, que se invocó mediante reflexión, inició una excepción.The constructor, which was invoked through reflection, threw an exception.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se admite la creación de tipos TypedReference, ArgIterator, Void y RuntimeArgumentHandle, ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

O bien-or- activationAttributes no es una matriz vacía y el tipo que se está creando no se deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

o bien-or- El constructor que más se aproxima a args tiene argumentos varargs.The constructor that best matches args has varargs arguments.

assemblyName no es un ensamblado válido.assemblyName is not a valid assembly.

o bien-or- Common Language Runtime (CLR) 2.0 o una versión posterior está cargado actualmente y assemblyName se compiló para una versión de CLR posterior a la versión cargada actualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Tenga en cuenta que las versiones 2.0, 3.0 y 3.5 de .NET Framework usan CLR versión 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Se cargó un ensamblado o módulo dos veces con dos evidencias diferentes.An assembly or module was loaded twice with two different evidences.

O bien-or-

El nombre o la base de código del ensamblado no son válidos.The assembly name or code base is invalid.

Comentarios

Use CreateInstance cuando un host necesite ejecutar código en un dominio de aplicación que tenga permisos de seguridad restringidos.Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

Utilice ObjectHandle.Unwrap para desencapsular el valor devuelto.Use ObjectHandle.Unwrap to unwrap the return value.

Nota

Este método usa SecurityAction.LinkDemand para requerir que el llamador inmediato tenga plena confianza.This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
permite invocar operaciones en todos los miembros de tipo.for the ability to invoke operations on all type members. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

SecurityCriticalAttribute
Requiere plena confianza para el llamador inmediato.requires full trust for the immediate caller. Este miembro no puede ser utilizado por código transparente o de confianza parcial.This member cannot be used by partially trusted or transparent code.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Crea una instancia del tipo cuyo nombre se especifica en el dominio remoto indicado, usando el ensamblado con nombre y el constructor que se adapta mejor a los parámetros especificados.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle

Parámetros

domain
AppDomain

Dominio en el que se crea el tipo denominado typeName.The domain where the type named typeName is created.

assemblyName
String

Nombre del ensamblado en el que se busca el tipo denominado typeName.The name of the assembly where the type named typeName is sought. Si assemblyName es null, se busca en el ensamblado que se está ejecutando.If assemblyName is null, the executing assembly is searched.

typeName
String

Nombre completo del tipo preferido.The fully qualified name of the preferred type.

ignoreCase
Boolean

true para especificar que en la búsqueda de typeName no se distingue entre mayúsculas y minúsculas; false para especificar que en la búsqueda se tenga en cuenta el uso de mayúsculas y minúsculas.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

Combinación de cero o más marcadores de bits que afectan a la búsqueda del constructor de typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Si bindingAttr es cero, se realiza una búsqueda de constructores públicos que distingue mayúsculas de minúsculas.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Objeto que usa bindingAttr y args para buscar e identificar el constructor de typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Si binder es null, se usa el enlazador predeterminado.If binder is null, the default binder is used.

args
Object[]

Matriz de argumentos que coinciden en número, orden y tipo con los parámetros del constructor al que se llama.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Si args es una matriz vacía o null, se invoca al constructor que no toma parámetros (constructor sin parámetros).If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Información específica de la referencia cultural que controla la conversión de args en los tipos formales declarados para el constructor de typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Si culture es null, se usa CultureInfo del subproceso actual.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

Matriz de uno o más atributos que puede participar en la activación.An array of one or more attributes that can participate in activation. Normalmente, se trata de una matriz que contiene un único objeto UrlAttribute que especifica la dirección URL necesaria para activar un objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Este parámetro está relacionado con los objetos activados por el cliente.This parameter is related to client-activated objects. La activación por parte del cliente es una tecnología heredada que se conserva por compatibilidad con versiones anteriores, pero no se recomienda para nuevo desarrollo.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Las aplicaciones distribuidas deberían usar Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

Devoluciones

Identificador que debe desempaquetarse para obtener acceso a la instancia recién creada.A handle that must be unwrapped to access the newly created instance.

Atributos

Excepciones

domain o typeName es null.domain or typeName is null.

No se encontró ningún constructor coincidente.No matching constructor was found.

No se encontró typename en assemblyName.typename was not found in assemblyName.

No se encontró assemblyName.assemblyName was not found.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El constructor, que se invocó mediante reflexión, inició una excepción.The constructor, which was invoked through reflection, threw an exception.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se admite la creación de tipos TypedReference, ArgIterator, Void y RuntimeArgumentHandle, ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

o bien-or- activationAttributes no es una matriz vacía y el tipo que se está creando no se deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

O bien-or- El constructor que más se aproxima a args tiene argumentos varargs.The constructor that best matches args has varargs arguments.

assemblyName no es un ensamblado válido.assemblyName is not a valid assembly.

o bien-or- Common Language Runtime (CLR) 2.0 o una versión posterior está cargado actualmente y assemblyName se compiló para una versión de CLR posterior a la versión cargada actualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Tenga en cuenta que las versiones 2.0, 3.0 y 3.5 de .NET Framework usan CLR versión 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Se cargó un ensamblado o módulo dos veces con dos evidencias diferentes.An assembly or module was loaded twice with two different evidences.

o bien-or-

El nombre o la base de código del ensamblado no son válidos.The assembly name or code base is invalid.

Comentarios

Use CreateInstance cuando un host necesite ejecutar código en un dominio de aplicación que tenga permisos de seguridad restringidos.Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

Utilice ObjectHandle.Unwrap para desencapsular el valor devuelto.Use ObjectHandle.Unwrap to unwrap the return value.

Nota

Este método usa SecurityAction.LinkDemand para requerir que el llamador inmediato tenga plena confianza.This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

Seguridad

SecurityCriticalAttribute
Requiere plena confianza para el llamador inmediato.requires full trust for the immediate caller. Este miembro no puede ser utilizado por código transparente o de confianza parcial.This member cannot be used by partially trusted or transparent code.

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
permite invocar operaciones en todos los miembros de tipo.for the ability to invoke operations on all type members. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Crea una instancia del tipo cuyo nombre se especifica, usando el ensamblado con nombre y el constructor que mejor coincida con los parámetros especificados.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle

Parámetros

assemblyName
String

Nombre del ensamblado en el que se busca el tipo denominado typeName.The name of the assembly where the type named typeName is sought. Si assemblyName es null, se busca en el ensamblado que se está ejecutando.If assemblyName is null, the executing assembly is searched.

typeName
String

Nombre completo del tipo preferido.The fully qualified name of the preferred type.

ignoreCase
Boolean

true para especificar que en la búsqueda de typeName no se distingue entre mayúsculas y minúsculas; false para especificar que en la búsqueda se tenga en cuenta el uso de mayúsculas y minúsculas.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

Combinación de cero o más marcadores de bits que afectan a la búsqueda del constructor de typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Si bindingAttr es cero, se realiza una búsqueda de constructores públicos que distingue mayúsculas de minúsculas.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Objeto que usa bindingAttr y args para buscar e identificar el constructor de typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Si binder es null, se usa el enlazador predeterminado.If binder is null, the default binder is used.

args
Object[]

Matriz de argumentos que coinciden en número, orden y tipo con los parámetros del constructor al que se llama.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Si args es una matriz vacía o null, se invoca al constructor que no toma parámetros (constructor sin parámetros).If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Información específica de la referencia cultural que controla la conversión de args en los tipos formales declarados para el constructor de typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Si culture es null, se usa CultureInfo del subproceso actual.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

Matriz de uno o más atributos que puede participar en la activación.An array of one or more attributes that can participate in activation. Normalmente, se trata de una matriz que contiene un único objeto UrlAttribute que especifica la dirección URL necesaria para activar un objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Este parámetro está relacionado con los objetos activados por el cliente.This parameter is related to client-activated objects. La activación por parte del cliente es una tecnología heredada que se conserva por compatibilidad con versiones anteriores, pero no se recomienda para nuevo desarrollo.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Las aplicaciones distribuidas deberían usar Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

Devoluciones

Identificador que debe desempaquetarse para obtener acceso a la instancia recién creada.A handle that must be unwrapped to access the newly created instance.

Excepciones

typeName es null.typeName is null.

No se encontró ningún constructor coincidente.No matching constructor was found.

No se encontró typename en assemblyName.typename was not found in assemblyName.

No se encontró assemblyName.assemblyName was not found.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El constructor, que se invocó mediante reflexión, inició una excepción.The constructor, which was invoked through reflection, threw an exception.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se admite la creación de tipos TypedReference, ArgIterator, Void y RuntimeArgumentHandle, ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

O bien-or- activationAttributes no es una matriz vacía y el tipo que se está creando no se deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

O bien-or- El constructor que más se aproxima a args tiene argumentos varargs.The constructor that best matches args has varargs arguments.

assemblyName no es un ensamblado válido.assemblyName is not a valid assembly.

O bien-or- Common Language Runtime (CLR) 2.0 o una versión posterior está cargado actualmente y assemblyName se compiló para una versión de CLR posterior a la versión cargada actualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Tenga en cuenta que las versiones 2.0, 3.0 y 3.5 de .NET Framework usan CLR versión 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Se cargó un ensamblado o módulo dos veces con dos evidencias diferentes.An assembly or module was loaded twice with two different evidences.

o bien-or-

El nombre o la base de código del ensamblado no son válidos.The assembly name or code base is invalid.

Comentarios

Utilice ObjectHandle.Unwrap para desencapsular el valor devuelto.Use ObjectHandle.Unwrap to unwrap the return value.

Nota

A partir de la .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, este método se puede usar para crear tipos y miembros no públicos si se ha concedido al llamador ReflectionPermission con la marca ReflectionPermissionFlag.RestrictedMemberAccess y si el conjunto de permisos concedidos del ensamblado que contiene los tipos y miembros no públicos está restringido a la conceda set o a un subconjunto de la misma.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. (Consulte consideraciones de seguridad para la reflexión).(See Security Considerations for Reflection.)

Para utilizar esta funcionalidad, la aplicación debe utilizar .NET Framework 3,5.NET Framework 3.5 o posterior como destino.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para obtener acceso a los tipos y miembros no públicos, independientemente de su conjunto de permisos concedidos.for accessing nonpublic types and members regardless of their grant set. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])

Crea una instancia del tipo especificado usando el constructor que mejor coincida con los parámetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

public:
 static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj

Parámetros

type
Type

Tipo de objeto que se va a crear.The type of object to create.

bindingAttr
BindingFlags

Combinación de cero o más marcadores de bits que afectan a la búsqueda del constructor de type.A combination of zero or more bit flags that affect the search for the type constructor. Si bindingAttr es cero, se realiza una búsqueda de constructores públicos que distingue mayúsculas de minúsculas.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Objeto que usa bindingAttr y args para buscar e identificar el constructor de type.An object that uses bindingAttr and args to seek and identify the type constructor. Si binder es null, se usa el enlazador predeterminado.If binder is null, the default binder is used.

args
Object[]

Matriz de argumentos que coinciden en número, orden y tipo con los parámetros del constructor al que se llama.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Si args es una matriz vacía o null, se invoca al constructor que no toma parámetros (constructor sin parámetros).If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Información específica de la referencia cultural que controla la conversión de args en los tipos formales declarados para el constructor de type.Culture-specific information that governs the coercion of args to the formal types declared for the type constructor. Si culture es null, se usa CultureInfo del subproceso actual.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

Matriz de uno o más atributos que puede participar en la activación.An array of one or more attributes that can participate in activation. Normalmente, se trata de una matriz que contiene un único objeto UrlAttribute que especifica la dirección URL necesaria para activar un objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Este parámetro está relacionado con los objetos activados por el cliente.This parameter is related to client-activated objects. La activación por parte del cliente es una tecnología heredada que se conserva por compatibilidad con versiones anteriores, pero no se recomienda para nuevo desarrollo.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Las aplicaciones distribuidas deberían usar Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

Devoluciones

Referencia al objeto recién creado.A reference to the newly created object.

Excepciones

type es null.type is null.

type no es un RuntimeType.type is not a RuntimeType.

O bien-or- type es un tipo genérico abierto (es decir, la propiedad ContainsGenericParameters devuelve true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type no puede ser un TypeBuilder.type cannot be a TypeBuilder.

o bien-or- No se admite la creación de tipos TypedReference, ArgIterator, Voidy RuntimeArgumentHandle , ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

o bien-or- activationAttributes no es una matriz vacía y el tipo que se está creando no se deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

o bien-or- El ensamblado que contiene type es un ensamblado dinámico que se creó con Save.The assembly that contains type is a dynamic assembly that was created with Save.

o bien-or- El constructor que más se aproxima a args tiene argumentos varargs.The constructor that best matches args has varargs arguments.

El constructor al que se llama genera una excepción.The constructor being called throws an exception.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se encontró ningún constructor coincidente.No matching constructor was found.

type es un objeto COM, pero el identificador de clase que se usa para obtener el tipo no es válido o la clase identificada no está registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type no es un tipo válido.type is not a valid type.

Comentarios

El constructor que se va a invocar debe proporcionar la coincidencia más específica con la lista de argumentos especificada bajo las restricciones del enlazador y los atributos de enlace especificados.The constructor to be invoked must provide the most specific match with the specified argument list under the constraints of the specified binder and binding attributes.

Nota

A partir de la .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, este método se puede utilizar para tener acceso a los tipos y miembros no públicos si se ha concedido al llamador ReflectionPermission con la marca ReflectionPermissionFlag.RestrictedMemberAccess y si el conjunto de permisos de los tipos y miembros no públicos está restringido al conjunto de permisos concedidos del llamador o a un subconjunto de los mismos. formato.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. (Consulte consideraciones de seguridad para la reflexión).(See Security Considerations for Reflection.)

Para utilizar esta funcionalidad, la aplicación debe utilizar .NET Framework 3,5.NET Framework 3.5 o posterior como destino.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Seguridad

SecurityPermission
para proporcionar evidencias.for supplying evidence. Enumeración asociada: ControlEvidenceAssociated enumeration: ControlEvidence

ReflectionPermission
para obtener acceso a los tipos y miembros no públicos, independientemente de su conjunto de permisos concedidos.for accessing nonpublic types and members regardless of their grant set. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)

Crea una instancia del tipo especificado usando el constructor que mejor coincida con los parámetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

public:
 static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj

Parámetros

type
Type

Tipo de objeto que se va a crear.The type of object to create.

bindingAttr
BindingFlags

Combinación de cero o más marcadores de bits que afectan a la búsqueda del constructor de type.A combination of zero or more bit flags that affect the search for the type constructor. Si bindingAttr es cero, se realiza una búsqueda de constructores públicos que distingue mayúsculas de minúsculas.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Objeto que usa bindingAttr y args para buscar e identificar el constructor de type.An object that uses bindingAttr and args to seek and identify the type constructor. Si binder es null, se usa el enlazador predeterminado.If binder is null, the default binder is used.

args
Object[]

Matriz de argumentos que coinciden en número, orden y tipo con los parámetros del constructor al que se llama.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Si args es una matriz vacía o null, se invoca al constructor que no toma parámetros (constructor sin parámetros).If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Información específica de la referencia cultural que controla la conversión de args en los tipos formales declarados para el constructor de type.Culture-specific information that governs the coercion of args to the formal types declared for the type constructor. Si culture es null, se usa CultureInfo del subproceso actual.If culture is null, the CultureInfo for the current thread is used.

Devoluciones

Referencia al objeto recién creado.A reference to the newly created object.

Excepciones

type es null.type is null.

type no es un RuntimeType.type is not a RuntimeType.

o bien-or- type es un tipo genérico abierto (es decir, la propiedad ContainsGenericParameters devuelve true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type no puede ser un TypeBuilder.type cannot be a TypeBuilder.

o bien-or- No se admite la creación de tipos TypedReference, ArgIterator, Voidy RuntimeArgumentHandle , ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

O bien-or- El ensamblado que contiene type es un ensamblado dinámico que se creó con Save.The assembly that contains type is a dynamic assembly that was created with Save.

o bien-or- El constructor que más se aproxima a args tiene argumentos varargs.The constructor that best matches args has varargs arguments.

El constructor al que se llama genera una excepción.The constructor being called throws an exception.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se encontró ningún constructor coincidente.No matching constructor was found.

type es un objeto COM, pero el identificador de clase que se usa para obtener el tipo no es válido o la clase identificada no está registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type no es un tipo válido.type is not a valid type.

Comentarios

El constructor que se va a invocar debe proporcionar la coincidencia más específica con la lista de argumentos especificada bajo las restricciones del enlazador y los atributos de enlace especificados.The constructor to be invoked must provide the most specific match with the specified argument list under the constraints of the specified binder and binding attributes.

Nota

A partir de la .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, este método se puede utilizar para tener acceso a los tipos y miembros no públicos si se ha concedido al llamador ReflectionPermission con la marca de ReflectionPermissionFlag.RestrictedMemberAccess y si el conjunto de permisos del ensamblado que contiene los tipos y miembros no públicos está restringido a la conceda set o a un subconjunto de la misma.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. (Consulte consideraciones de seguridad para la reflexión).(See Security Considerations for Reflection.)

Para utilizar esta funcionalidad, la aplicación debe utilizar .NET Framework 3,5.NET Framework 3.5 o posterior como destino.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para obtener acceso a los tipos y miembros no públicos, independientemente de su conjunto de permisos concedidos.for accessing nonpublic types and members regardless of their grant set. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Object[], Object[])

Crea una instancia del tipo especificado usando el constructor que mejor coincida con los parámetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args, cli::array <System::Object ^> ^ activationAttributes);
public static object CreateInstance (Type type, object[] args, object[] activationAttributes);
static member CreateInstance : Type * obj[] * obj[] -> obj

Parámetros

type
Type

Tipo de objeto que se va a crear.The type of object to create.

args
Object[]

Matriz de argumentos que coinciden en número, orden y tipo con los parámetros del constructor al que se llama.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Si args es una matriz vacía o null, se invoca al constructor que no toma parámetros (constructor sin parámetros).If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

activationAttributes
Object[]

Matriz de uno o más atributos que puede participar en la activación.An array of one or more attributes that can participate in activation. Normalmente, se trata de una matriz que contiene un único objeto UrlAttribute que especifica la dirección URL necesaria para activar un objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Este parámetro está relacionado con los objetos activados por el cliente.This parameter is related to client-activated objects. La activación por parte del cliente es una tecnología heredada que se conserva por compatibilidad con versiones anteriores, pero no se recomienda para nuevo desarrollo.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Las aplicaciones distribuidas deberían usar Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

Devoluciones

Referencia al objeto recién creado.A reference to the newly created object.

Excepciones

type es null.type is null.

type no es un RuntimeType.type is not a RuntimeType.

o bien-or- type es un tipo genérico abierto (es decir, la propiedad ContainsGenericParameters devuelve true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type no puede ser un TypeBuilder.type cannot be a TypeBuilder.

o bien-or- No se admite la creación de tipos TypedReference, ArgIterator, Voidy RuntimeArgumentHandle , ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

o bien-or- activationAttributes no es una matriz vacía y el tipo que se está creando no se deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

O bien-or- El ensamblado que contiene type es un ensamblado dinámico que se creó con Save.The assembly that contains type is a dynamic assembly that was created with Save.

O bien-or- El constructor que más se aproxima a args tiene argumentos varargs.The constructor that best matches args has varargs arguments.

El constructor al que se llama genera una excepción.The constructor being called throws an exception.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se encontró ningún constructor público coincidente.No matching public constructor was found.

type es un objeto COM, pero el identificador de clase usado para obtener el tipo no es válido o la clase identificada no está registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type no es un tipo válido.type is not a valid type.

Comentarios

El constructor al que se va a invocar debe ser accesible y debe proporcionar la coincidencia más específica con la lista de argumentos especificada.The constructor to be invoked must be accessible and must provide the most specific match with the specified argument list.

Nota

A partir de la .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, este método se puede utilizar para tener acceso a tipos no públicos si se ha concedido al llamador ReflectionPermission con la marca ReflectionPermissionFlag.RestrictedMemberAccess y si el conjunto de permisos concedidos del ensamblado que contiene los tipos no públicos está restringido al conjunto de permisos concedidos del llamador o a un subconjunto del reof.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. (Consulte consideraciones de seguridad para la reflexión).(See Security Considerations for Reflection.)

Para utilizar esta funcionalidad, la aplicación debe utilizar .NET Framework 3,5.NET Framework 3.5 o posterior como destino.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para obtener acceso a los tipos no públicos, independientemente de su conjunto de permisos concedidos.for accessing nonpublic types regardless of their grant set. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String, Object[])

Crea una instancia del tipo cuyo nombre se especifica, usando el ensamblado con nombre y el constructor sin parámetros.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, object[] activationAttributes);
static member CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, activationAttributes As Object()) As ObjectHandle

Parámetros

assemblyName
String

Nombre del ensamblado en el que se busca el tipo denominado typeName.The name of the assembly where the type named typeName is sought. Si assemblyName es null, se busca en el ensamblado que se está ejecutando.If assemblyName is null, the executing assembly is searched.

typeName
String

Nombre completo del tipo preferido.The fully qualified name of the preferred type.

activationAttributes
Object[]

Matriz de uno o más atributos que puede participar en la activación.An array of one or more attributes that can participate in activation. Normalmente, se trata de una matriz que contiene un único objeto UrlAttribute que especifica la dirección URL necesaria para activar un objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Este parámetro está relacionado con los objetos activados por el cliente.This parameter is related to client-activated objects. La activación por parte del cliente es una tecnología heredada que se conserva por compatibilidad con versiones anteriores, pero no se recomienda para nuevo desarrollo.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Las aplicaciones distribuidas deberían usar Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

Devoluciones

Identificador que debe desempaquetarse para obtener acceso a la instancia recién creada.A handle that must be unwrapped to access the newly created instance.

Excepciones

typeName es null.typeName is null.

No se encontró ningún constructor público coincidente.No matching public constructor was found.

No se encontró typename en assemblyName.typename was not found in assemblyName.

No se encontró assemblyName.assemblyName was not found.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se admite la creación de tipos TypedReference, ArgIterator, Void y RuntimeArgumentHandle, ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

O bien-or- activationAttributes no es una matriz vacía y el tipo que se está creando no se deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

o bien-or- activationAttributes no es una matriz UrlAttributeactivationAttributes is not a UrlAttribute

.array.

assemblyName no es un ensamblado válido.assemblyName is not a valid assembly.

o bien-or- Common Language Runtime (CLR) 2.0 o una versión posterior está cargado actualmente y assemblyName se compiló para una versión de CLR posterior a la versión cargada actualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Tenga en cuenta que las versiones 2.0, 3.0 y 3.5 de .NET Framework usan CLR versión 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Se cargó un ensamblado o módulo dos veces con dos evidencias diferentes.An assembly or module was loaded twice with two different evidences.

O bien-or-

El nombre o la base de código del ensamblado no son válidos.The assembly name or code base is invalid.

Se produjo un error al intentar la activación remota en un destino especificado en activationAttributes.An error occurred when attempting remote activation in a target specified in activationAttributes.

Comentarios

Utilice ObjectHandle.Unwrap para desencapsular el valor devuelto.Use ObjectHandle.Unwrap to unwrap the return value.

Nota

A partir de la .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, este método se puede usar para crear tipos no públicos si se ha concedido al llamador ReflectionPermission con la marca ReflectionPermissionFlag.RestrictedMemberAccess y si el conjunto de permisos de los tipos no públicos está restringido al conjunto de permisos concedidos del llamador o a un subconjunto de ellos.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the nonpublic types is restricted to the caller's grant set or to a subset thereof. (Consulte consideraciones de seguridad para la reflexión).(See Security Considerations for Reflection.)

Para utilizar esta funcionalidad, la aplicación debe utilizar .NET Framework 3,5.NET Framework 3.5 o posterior como destino.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para obtener acceso a los tipos no públicos, independientemente de su conjunto de permisos concedidos.for accessing nonpublic types regardless of their grant set. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Advertencia

Esta API está ya obsoleta.

Crea una instancia del tipo cuyo nombre se especifica, usando el ensamblado con nombre y el constructor que mejor coincida con los parámetros especificados.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityInfo);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle

Parámetros

assemblyName
String

Nombre del ensamblado en el que se busca el tipo denominado typeName.The name of the assembly where the type named typeName is sought. Si assemblyName es null, se busca en el ensamblado que se está ejecutando.If assemblyName is null, the executing assembly is searched.

typeName
String

Nombre completo del tipo preferido.The fully qualified name of the preferred type.

ignoreCase
Boolean

true para especificar que en la búsqueda de typeName no se distingue entre mayúsculas y minúsculas; false para especificar que en la búsqueda se tenga en cuenta el uso de mayúsculas y minúsculas.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

Combinación de cero o más marcadores de bits que afectan a la búsqueda del constructor de typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Si bindingAttr es cero, se realiza una búsqueda de constructores públicos que distingue mayúsculas de minúsculas.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Objeto que usa bindingAttr y args para buscar e identificar el constructor de typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Si binder es null, se usa el enlazador predeterminado.If binder is null, the default binder is used.

args
Object[]

Matriz de argumentos que coinciden en número, orden y tipo con los parámetros del constructor al que se llama.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Si args es una matriz vacía o null, se invoca al constructor que no toma parámetros (constructor sin parámetros).If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Información específica de la referencia cultural que controla la conversión de args en los tipos formales declarados para el constructor de typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Si culture es null, se usa CultureInfo del subproceso actual.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

Matriz de uno o más atributos que puede participar en la activación.An array of one or more attributes that can participate in activation. Normalmente, se trata de una matriz que contiene un único objeto UrlAttribute que especifica la dirección URL necesaria para activar un objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Este parámetro está relacionado con los objetos activados por el cliente.This parameter is related to client-activated objects. La activación por parte del cliente es una tecnología heredada que se conserva por compatibilidad con versiones anteriores, pero no se recomienda para nuevo desarrollo.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Las aplicaciones distribuidas deberían usar Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

securityInfo
Evidence

Información usada para tomar decisiones sobre la directiva de seguridad y conceder permisos de código.Information used to make security policy decisions and grant code permissions.

Devoluciones

Identificador que debe desempaquetarse para obtener acceso a la instancia recién creada.A handle that must be unwrapped to access the newly created instance.

Atributos

Excepciones

typeName es null.typeName is null.

No se encontró ningún constructor coincidente.No matching constructor was found.

No se encontró typename en assemblyName.typename was not found in assemblyName.

No se encontró assemblyName.assemblyName was not found.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El constructor, que se invocó mediante reflexión, inició una excepción.The constructor, which was invoked through reflection, threw an exception.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se admite la creación de tipos TypedReference, ArgIterator, Void y RuntimeArgumentHandle, ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

o bien-or- activationAttributes no es una matriz vacía y el tipo que se está creando no se deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

O bien-or- El constructor que más se aproxima a args tiene argumentos varargs.The constructor that best matches args has varargs arguments.

assemblyName no es un ensamblado válido.assemblyName is not a valid assembly.

O bien-or- Common Language Runtime (CLR) 2.0 o una versión posterior está cargado actualmente y assemblyName se compiló para una versión de CLR posterior a la versión cargada actualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Tenga en cuenta que las versiones 2.0, 3.0 y 3.5 de .NET Framework usan CLR versión 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Se cargó un ensamblado o módulo dos veces con dos evidencias diferentes.An assembly or module was loaded twice with two different evidences.

o bien-or-

El nombre o la base de código del ensamblado no son válidos.The assembly name or code base is invalid.

Comentarios

Utilice ObjectHandle.Unwrap para desencapsular el valor devuelto.Use ObjectHandle.Unwrap to unwrap the return value.

Nota

A partir de la .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, este método se puede usar para crear tipos y miembros no públicos si se ha concedido al llamador ReflectionPermission con la marca ReflectionPermissionFlag.RestrictedMemberAccess y si el conjunto de permisos concedidos del ensamblado que contiene los tipos y miembros no públicos está restringido a la conceda set o a un subconjunto de la misma.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. (Consulte consideraciones de seguridad para la reflexión).(See Security Considerations for Reflection.)

Para utilizar esta funcionalidad, la aplicación debe utilizar .NET Framework 3,5.NET Framework 3.5 o posterior como destino.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para obtener acceso a los tipos y miembros no públicos, independientemente de su conjunto de permisos concedidos.for accessing nonpublic types and members regardless of their grant set. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Object[])

Crea una instancia del tipo especificado usando el constructor que mejor coincida con los parámetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args);
public static object CreateInstance (Type type, object[] args);
static member CreateInstance : Type * obj[] -> obj

Parámetros

type
Type

Tipo de objeto que se va a crear.The type of object to create.

args
Object[]

Matriz de argumentos que coinciden en número, orden y tipo con los parámetros del constructor al que se llama.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Si args es una matriz vacía o null, se invoca al constructor que no toma parámetros (constructor sin parámetros).If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

Devoluciones

Referencia al objeto recién creado.A reference to the newly created object.

Excepciones

type es null.type is null.

type no es un RuntimeType.type is not a RuntimeType.

o bien-or- type es un tipo genérico abierto (es decir, la propiedad ContainsGenericParameters devuelve true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type no puede ser un TypeBuilder.type cannot be a TypeBuilder.

o bien-or- No se admite la creación de tipos TypedReference, ArgIterator, Voidy RuntimeArgumentHandle , ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

o bien-or- El ensamblado que contiene type es un ensamblado dinámico que se creó con Save.The assembly that contains type is a dynamic assembly that was created with Save.

o bien-or- El constructor que más se aproxima a args tiene argumentos varargs.The constructor that best matches args has varargs arguments.

El constructor al que se llama genera una excepción.The constructor being called throws an exception.

En .NET para aplicaciones de la Tienda Windows o la Biblioteca de clases portable, capture en su lugar la excepción de clase base, MemberAccessException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MemberAccessException, instead.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

En .NET para aplicaciones de la Tienda Windows o la Biblioteca de clases portable, capture en su lugar la excepción de clase base, MissingMemberException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

No se encontró ningún constructor público coincidente.No matching public constructor was found.

type es un objeto COM, pero el identificador de clase usado para obtener el tipo no es válido o la clase identificada no está registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type no es un tipo válido.type is not a valid type.

Ejemplos

En el ejemplo siguiente se llama al método CreateInstance(Type, Object[]) para crear un objeto String.The following example calls the CreateInstance(Type, Object[]) method to create a String object. Llama al constructor String.String(Char[], Int32, Int32) para crear una instancia de una cadena que contiene diez elementos de una matriz de caracteres a partir de la decimocuarta posición.It calls the String.String(Char[], Int32, Int32) constructor to instantiate a string that contains ten elements from a character array starting at the fourteenth position.

using System;

public class Example
{
   public static void Main()
   {
      // Initialize array of characters from a to z.
      Char[] chars = new Char[26]; 
      for (int ctr = 0; ctr < 26; ctr++)
         chars[ctr] = (char) (ctr + 0x0061);

      Object obj = Activator.CreateInstance(typeof(String),
                                            new Object[] { chars, 13, 10 } );
      Console.WriteLine(obj);                                          
   }
}
// The example displays the following output:
//       nopqrstuvw
Module Example
   Public Sub Main()
      ' Initialize array of characters from a to z.
      Dim chars(25) As Char 
      For ctr As Short = 0 To 25
         chars(ctr) = ChrW(ctr + &h0061)
      Next 
      Dim obj As Object = Activator.CreateInstance(GetType(String),
                                                   { chars, 13, 10 })
      Console.WriteLine(obj)                                          
   End Sub
End Module
' The example displays the following output:
'       nopqrstuvw

En el ejemplo siguiente se crea una matriz escalonada cuyos elementos son argumentos que se van a pasar a un constructor de String.The following example creates a jagged array whose elements are arguments to be passed to a String constructor. A continuación, en el ejemplo se pasa cada matriz al método CreateInstance(Type, Object[]) para invocar el constructor de cadena adecuado.The example then passes each array to the CreateInstance(Type, Object[]) method to invoke the appropriate string constructor.

using System;

public class Example
{
   public static void Main()
   {
      char[] characters = { 'a', 'b', 'c', 'd', 'e', 'f' };
      object[][] arguments = new object[3][] { new object[] { characters },
                                               new object[] { characters, 1, 4 },
                                               new object[] { characters[1], 20 } };

      for (int ctr = 0; ctr <= arguments.GetUpperBound(0); ctr++) {
         object[] args = arguments[ctr];
         object result = Activator.CreateInstance(typeof(String), args);
         Console.WriteLine("{0}: {1}", result.GetType().Name, result);
      }
   }
}
// The example displays the following output:
//    String: abcdef
//    String: bcde
//    String: bbbbbbbbbbbbbbbbbbbb
Module Example
   Public Sub Main()
      Dim characters() As Char = { "a"c, "b"c, "c"c, "d"c, "e"c, "f"c }
      Dim arguments()() As Object = new Object(2)() { New Object() { characters },
                                                      New Object() { characters, 1, 4 },
                                                      New Object() { characters(1), 20 } }

      For ctr As Integer = 0 To arguments.GetUpperBound(0)
         Dim args() As Object = arguments(ctr)
         Dim result As Object = Activator.CreateInstance(GetType(String), args)
         Console.WriteLine("{0}: {1}", result.GetType().Name, result)
      Next
   End Sub
End Module
' The example displays the following output:
'       String: abcdef
'       String: bcde
'       String: bbbbbbbbbbbbbbbbbbbb

Comentarios

El constructor al que se va a invocar debe ser accesible y debe proporcionar la coincidencia más específica con la lista de argumentos especificada.The constructor to be invoked must be accessible and must provide the most specific match with the specified argument list.

Nota

A partir de la .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, este método se puede utilizar para tener acceso a tipos no públicos si se ha concedido al llamador ReflectionPermission con la marca ReflectionPermissionFlag.RestrictedMemberAccess y si el conjunto de permisos concedidos del ensamblado que contiene los tipos no públicos está restringido al conjunto de permisos concedidos del llamador o a un subconjunto del reof.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. (Consulte consideraciones de seguridad para la reflexión).(See Security Considerations for Reflection.)

Para utilizar esta funcionalidad, la aplicación debe utilizar .NET Framework 3,5.NET Framework 3.5 o posterior como destino.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para obtener acceso a los tipos no públicos, independientemente de su conjunto de permisos concedidos.for accessing nonpublic types regardless of their grant set. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Boolean)

Crea una instancia del tipo especificado usando el constructor sin parámetros de ese tipo.Creates an instance of the specified type using that type's parameterless constructor.

public:
 static System::Object ^ CreateInstance(Type ^ type, bool nonPublic);
public static object CreateInstance (Type type, bool nonPublic);
static member CreateInstance : Type * bool -> obj

Parámetros

type
Type

Tipo de objeto que se va a crear.The type of object to create.

nonPublic
Boolean

true si puede haber coincidencias de constructores sin parámetros públicos o no públicos; false si solo puede haber coincidencias de constructores sin parámetros públicos.true if a public or nonpublic parameterless constructor can match; false if only a public parameterless constructor can match.

Devoluciones

Referencia al objeto recién creado.A reference to the newly created object.

Excepciones

type es null.type is null.

type no es un RuntimeType.type is not a RuntimeType.

o bien-or- type es un tipo genérico abierto (es decir, la propiedad ContainsGenericParameters devuelve true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type no puede ser un TypeBuilder.type cannot be a TypeBuilder.

O bien-or- No se admite la creación de tipos TypedReference, ArgIterator, Voidy RuntimeArgumentHandle , ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

o bien-or- El ensamblado que contiene type es un ensamblado dinámico que se creó con Save.The assembly that contains type is a dynamic assembly that was created with Save.

El constructor al que se llama genera una excepción.The constructor being called throws an exception.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se encontró ningún constructor público coincidente.No matching public constructor was found.

type es un objeto COM, pero el identificador de clase usado para obtener el tipo no es válido o la clase identificada no está registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type no es un tipo válido.type is not a valid type.

Comentarios

Nota

A partir de la .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, este método se puede utilizar para tener acceso a los tipos y miembros no públicos si se ha concedido al llamador ReflectionPermission con la marca de ReflectionPermissionFlag.RestrictedMemberAccess y si el conjunto de permisos del ensamblado que contiene los tipos y miembros no públicos está restringido a la conceda set o a un subconjunto de la misma.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. (Consulte consideraciones de seguridad para la reflexión).(See Security Considerations for Reflection.)

Para utilizar esta funcionalidad, la aplicación debe utilizar .NET Framework 3,5.NET Framework 3.5 o posterior como destino.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para obtener acceso a los tipos y miembros no públicos, independientemente de su conjunto de permisos concedidos.for accessing nonpublic types and members regardless of their grant set. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String)

Crea una instancia del tipo cuyo nombre se especifica, usando el ensamblado con nombre y el constructor sin parámetros.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName);
static member CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String) As ObjectHandle

Parámetros

assemblyName
String

Nombre del ensamblado en el que se busca el tipo denominado typeName.The name of the assembly where the type named typeName is sought. Si assemblyName es null, se busca en el ensamblado que se está ejecutando.If assemblyName is null, the executing assembly is searched.

typeName
String

Nombre completo del tipo preferido.The fully qualified name of the preferred type.

Devoluciones

Identificador que debe desempaquetarse para obtener acceso a la instancia recién creada.A handle that must be unwrapped to access the newly created instance.

Excepciones

typeName es null.typeName is null.

No se encontró ningún constructor público coincidente.No matching public constructor was found.

No se encontró typename en assemblyName.typename was not found in assemblyName.

No se encontró assemblyName.assemblyName was not found.

El autor de la llamada no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.You cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El constructor, que se invocó mediante reflexión, inició una excepción.The constructor, which was invoked through reflection, threw an exception.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se admite la creación de tipos TypedReference, ArgIterator, Void y RuntimeArgumentHandle, ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

assemblyName no es un ensamblado válido.assemblyName is not a valid assembly.

O bien-or- Common Language Runtime (CLR) 2.0 o una versión posterior está cargado actualmente y assemblyName se compiló para una versión de CLR posterior a la versión cargada actualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Tenga en cuenta que las versiones 2.0, 3.0 y 3.5 de .NET Framework usan CLR versión 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Se cargó un ensamblado o módulo dos veces con dos evidencias diferentes.An assembly or module was loaded twice with two different evidences.

o bien-or-

El nombre o la base de código del ensamblado no son válidos.The assembly name or code base is invalid.

Ejemplos

En el ejemplo siguiente se define una clase denominada Person en un ensamblado denominado PersonInfo.The following example defines a class named Person in an assembly named PersonInfo. Tenga en cuenta que la Person clase tiene dos constructores, uno de los cuales no tiene parámetros.Note that the Person class has two constructors, one of which is parameterless.

using System;

public class Person
{
   private string _name;
   
   public Person()
   { }
   
   public Person(string name)
   {
      this._name = name;
   }
   
   public string Name
   { get { return this._name; }
     set { this._name = value; } }
   
   public override string ToString()
   {
      return this._name;
   }
}
Public Class Person
   Private _name As String
   
   Public Sub New()
   End Sub
   
   Public Sub New(name As String)
      Me._name = name
   End Sub
   
   Public Property Name As String
      Get
         Return Me._name
      End Get
      Set
         Me._name = value
      End Set
   End Property
   
   Public Overrides Function ToString() As String
      Return Me._name
   End Function
End Class

En el ejemplo siguiente se llama al método CreateInstance(String, String) para crear una instancia de la clase Person.The following example calls the CreateInstance(String, String) method to instantiate the Person class. Requiere que se agregue al proyecto una referencia a PersonInfo. dll.It requires a reference to PersonInfo.dll to be added to the project. Dado que el método CreateInstance(String, String) llama al constructor sin parámetros de la clase Person, el ejemplo asigna un valor a su propiedad Name.Because the CreateInstance(String, String) method calls the Person class parameterless constructor, the example assigns a value to its Name property.

using System;
using System.Runtime.Remoting;

public class Example
{
   public static void Main()
   {
      ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
      Person p = (Person) handle.Unwrap();
      p.Name = "Samuel";
      Console.WriteLine(p);
   }
}
// The example displays the following output:
//        Samuel
Imports System.Runtime.Remoting

Module Example
   Public Sub Main()
      Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
      Dim p As Person = CType(handle.Unwrap(), Person)
      p.Name = "Samuel"
      Console.WriteLine(p)
   End Sub
End Module
' The example displays the following output:
'       Samuel

Sin embargo, a menudo se llama a CreateInstance para crear instancias de un tipo que cruza los límites del equipo o que no se conoce en tiempo de diseño.However, CreateInstance is frequently called to instantiate a type that crosses machine boundaries or that is not known at design time. En este caso, no puede incluir una referencia al ensamblado en el proyecto y no puede realizar llamadas enlazadas en tiempo de compilación a los miembros del tipo.In this case, you cannot include a reference to the assembly in the project and cannot make early-bound calls to the type's members. Para evitar esta limitación, en el ejemplo siguiente se usa el método CreateInstance junto con la reflexión para asignar un valor a la propiedad Name del objeto Person y para mostrar su valor.To work around this limitation, the following example uses the CreateInstance method along with reflection to assign a value to the Person object's Name property and to display its value.

using System;
using System.Reflection;
using System.Runtime.Remoting;

public class Example
{
   public static void Main()
   {
      ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
      Object p = handle.Unwrap();
      Type t = p.GetType();
      PropertyInfo prop = t.GetProperty("Name");
      if (prop != null)
         prop.SetValue(p, "Samuel");

      MethodInfo method = t.GetMethod("ToString");
      Object retVal = method.Invoke(p, null); 
      if (retVal != null)
         Console.WriteLine(retVal);
   }
}
// The example displays the following output:
//        Samuel
Imports System.Reflection
Imports System.Runtime.Remoting

Module Example
   Public Sub Main()
      Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
      Dim p As Object = handle.Unwrap()
      Dim t As Type = p.GetType()
      Dim prop As PropertyInfo = t.GetProperty("Name")
      if Not prop Is Nothing Then
         prop.SetValue(p, "Samuel")
      End If   
      Dim method As MethodInfo = t.GetMethod("ToString")
      Dim retVal As Object = method.Invoke(p, Nothing) 
      If Not retVal Is Nothing Then
         Console.WriteLine(retVal)
      End If
   End Sub
End Module
' The example displays the following output:
'       Samuel

Comentarios

Utilice ObjectHandle.Unwrap para desencapsular el valor devuelto.Use ObjectHandle.Unwrap to unwrap the return value.

assemblyName puede ser cualquiera de los siguientes:assemblyName can be either of the following:

  • Nombre simple de un ensamblado, sin su ruta de acceso o extensión de archivo.The simple name of an assembly, without its path or file extension. Por ejemplo, debe especificar TypeExtensions para un ensamblado cuya ruta de acceso y nombre son .\bin\TypeExtensions.dll.For example, you would specify TypeExtensions for an assembly whose path and name are .\bin\TypeExtensions.dll.

  • Nombre completo de un ensamblado firmado, que consta de su nombre simple, versión, referencia cultural y token de clave pública. por ejemplo, "TypeExtensions, version = 1.0.0.0, Culture = neutral, PublicKeyToken = 181869f2f7435b51".The full name of a signed assembly, which consists of its simple name, version, culture, and public key token; for example, "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51".

Para obtener más información sobre cómo el Common Language Runtime identifica y carga ensamblados, vea cómo el motor en tiempo de ejecución ubica ensamblados.For more information on how the common language runtime identifies and loads assemblies, see How the Runtime Locates Assemblies. Para obtener información sobre el uso del archivo de configuración de la aplicación para definir ubicaciones de ensamblados, vea especificar la ubicación de un ensamblado.For information on using the application configuration file to define assembly locations, see Specifying an Assembly's Location. Si se encuentra assemblyName, se carga en el contexto predeterminado.If assemblyName is found, it is loaded in the default context.

Nota

A partir de la .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, este método se puede usar para crear tipos no públicos si se ha concedido al llamador ReflectionPermission con la marca de ReflectionPermissionFlag.RestrictedMemberAccess y si el conjunto de permisos del ensamblado que contiene los tipos no públicos está restringido al conjunto de permisos concedidos del llamador o a un subconjunto del reof.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. (Consulte consideraciones de seguridad para la reflexión).(See Security Considerations for Reflection.)

Para utilizar esta funcionalidad, la aplicación debe utilizar .NET Framework 3,5.NET Framework 3.5 o posterior como destino.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para obtener acceso a los tipos no públicos, independientemente de su conjunto de permisos concedidos.for accessing nonpublic types regardless of their grant set. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(ActivationContext, String[])

Crea una instancia del tipo designado por el objeto ActivationContext especificado y activada con los datos de activación personalizados especificados.Creates an instance of the type that is designated by the specified ActivationContext object and activated with the specified custom activation data.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext, cli::array <System::String ^> ^ activationCustomData);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext, string[] activationCustomData);
static member CreateInstance : ActivationContext * string[] -> System.Runtime.Remoting.ObjectHandle

Parámetros

activationContext
ActivationContext

Objeto de contexto de activación que especifica el objeto que se va a crear.An activation context object that specifies the object to create.

activationCustomData
String[]

Matriz de cadenas Unicode que contienen los datos de activación personalizados.An array of Unicode strings that contain custom activation data.

Devoluciones

Identificador que debe desajustarse para obtener acceso al objeto recién creado.A handle that must be unwrapped to access the newly created object.

Comentarios

Use el método ObjectHandle.Unwrap para desencapsular el valor devuelto.Use the ObjectHandle.Unwrap method to unwrap the return value.

El contexto de activación se usa durante la activación basada en manifiestos para configurar la Directiva de dominio y proporcionar un modelo de seguridad basado en la aplicación.The activation context is used during manifest-based activation to set up the domain policy and to provide an application-based security model. La clase ActivationContext contiene un objeto ApplicationIdentity que proporciona acceso al manifiesto de aplicación.The ActivationContext class contains an ApplicationIdentity object that provides access to the application manifest. Para obtener más información, vea la clase ApplicationSecurityManager.For more information, see the ApplicationSecurityManager class.

Consulte también:

CreateInstance(Type)

Crea una instancia del tipo especificado usando el constructor sin parámetros de ese tipo.Creates an instance of the specified type using that type's parameterless constructor.

public:
 static System::Object ^ CreateInstance(Type ^ type);
public static object CreateInstance (Type type);
static member CreateInstance : Type -> obj

Parámetros

type
Type

Tipo de objeto que se va a crear.The type of object to create.

Devoluciones

Referencia al objeto recién creado.A reference to the newly created object.

Excepciones

type es null.type is null.

type no es un RuntimeType.type is not a RuntimeType.

O bien-or- type es un tipo genérico abierto (es decir, la propiedad ContainsGenericParameters devuelve true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type no puede ser un TypeBuilder.type cannot be a TypeBuilder.

o bien-or- No se admite la creación de tipos TypedReference, ArgIterator, Voidy RuntimeArgumentHandle , ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

O bien-or- El ensamblado que contiene type es un ensamblado dinámico que se creó con Save.The assembly that contains type is a dynamic assembly that was created with Save.

El constructor al que se llama genera una excepción.The constructor being called throws an exception.

En .NET para aplicaciones de la Tienda Windows o la Biblioteca de clases portable, capture en su lugar la excepción de clase base, MemberAccessException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MemberAccessException, instead.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de una clase abstracta o este miembro se invocó mediante un mecanismo de enlace en tiempo de ejecución.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

En .NET para aplicaciones de la Tienda Windows o la Biblioteca de clases portable, capture en su lugar la excepción de clase base, MissingMemberException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

No se encontró ningún constructor público coincidente.No matching public constructor was found.

type es un objeto COM, pero el identificador de clase usado para obtener el tipo no es válido o la clase identificada no está registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type no es un tipo válido.type is not a valid type.

Ejemplos

En el ejemplo de código siguiente se muestra cómo llamar al método CreateInstance(Type).The following code example demonstrates how to call the CreateInstance(Type) method. Se crean instancias de varios tipos diferentes y se muestran sus valores predeterminados.Instances of several different types are created and their default values are displayed.

using namespace System;

ref class DynamicInstanceList
{
private:
    static String^ instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

public:
    static void Main()
    {
        array<String^>^ instances = instanceSpec->Split(';');
        Array^ instlist = Array::CreateInstance(Object::typeid, instances->Length);
        Object^ item;

        for (int i = 0; i < instances->Length; i++)
        {
            // create the object from the specification string
            Console::WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator::CreateInstance(Type::GetType(instances[i]));
            instlist->SetValue(item, i);
        }
        Console::WriteLine("\nObjects and their default values:\n");
        for each (Object^ o in instlist)
        {
            Console::WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o->GetType()->FullName, o->ToString(), o->GetHashCode());
        }
    }
};

int main()
{
    DynamicInstanceList::Main();
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
using System;

class DynamicInstanceList
{
    private static string instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

    public static void Main()
    {
        string[] instances = instanceSpec.Split(';');
        Array instlist = Array.CreateInstance(typeof(object), instances.Length);
        object item;
        for (int i = 0; i < instances.Length; i++)
        {
            // create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator.CreateInstance(Type.GetType(instances[i]));
            instlist.SetValue(item, i);
        }
        Console.WriteLine("\nObjects and their default values:\n");
        foreach (object o in instlist)
        {
            Console.WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o.GetType().FullName, o.ToString(), o.GetHashCode());
        }
    }
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
Class DynamicInstanceList
    Private Shared instanceSpec As String = "System.EventArgs;System.Random;" + _
        "System.Exception;System.Object;System.Version"

    Public Shared Sub Main()
        Dim instances() As String = instanceSpec.Split(";")
        Dim instlist As Array = Array.CreateInstance(GetType(Object), instances.Length)
        Dim item As Object

        For i As Integer = 0 To instances.Length -1
            ' create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances(i))
            item = Activator.CreateInstance(Type.GetType(instances(i)))
            instlist.SetValue(item, i)
        Next i
        Console.WriteLine(vbNewLine + "Objects and their default values:" + vbNewLine)
        For Each o As Object In instlist
            Console.WriteLine("Type:     {0}" + vbNewLine + "Value:    {1}" + _
                vbNewLine + "HashCode: {2}" + vbNewLine, _
                o.GetType().FullName, o.ToString(), o.GetHashCode())
        Next o
    End Sub
End Class

' This program will display output similar to the following:
'
' Creating instance of: System.EventArgs
' Creating instance of: System.Random
' Creating instance of: System.Exception
' Creating instance of: System.Object
' Creating instance of: System.Version
'
' Objects and their default values:
'
' Type:     System.EventArgs
' Value:    System.EventArgs
' HashCode: 46104728
'
' Type:     System.Random
' Value:    System.Random
' HashCode: 12289376
'
' Type:     System.Exception
' Value:    System.Exception: Exception of type 'System.Exception' was thrown.
' HashCode: 55530882
'
' Type:     System.Object
' Value:    System.Object
' HashCode: 30015890
'
' Type:     System.Version
' Value:    0.0
' HashCode: 1048575

Comentarios

El constructor al que se va a invocar debe ser accesible.The constructor to be invoked must be accessible.

Nota

A partir de la .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, este método se puede utilizar para tener acceso a tipos no públicos si se ha concedido al llamador ReflectionPermission con la marca ReflectionPermissionFlag.RestrictedMemberAccess y si el conjunto de permisos concedidos del ensamblado que contiene los tipos no públicos está restringido al conjunto de permisos concedidos del llamador o a un subconjunto del reof.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. (Consulte consideraciones de seguridad para la reflexión).(See Security Considerations for Reflection.)

Para utilizar esta funcionalidad, la aplicación debe utilizar .NET Framework 3,5.NET Framework 3.5 o posterior como destino.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para obtener acceso a los tipos no públicos, independientemente de sus conjuntos de permisos.for accessing nonpublic types regardless of their grant sets. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(ActivationContext)

Crea una instancia del tipo designado por el objeto ActivationContext especificado.Creates an instance of the type designated by the specified ActivationContext object.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext);
static member CreateInstance : ActivationContext -> System.Runtime.Remoting.ObjectHandle

Parámetros

activationContext
ActivationContext

Objeto de contexto de activación que especifica el objeto que se va a crear.An activation context object that specifies the object to create.

Devoluciones

Identificador que debe desajustarse para obtener acceso al objeto recién creado.A handle that must be unwrapped to access the newly created object.

Comentarios

Use el método ObjectHandle.Unwrap para desencapsular el valor devuelto.Use the ObjectHandle.Unwrap method to unwrap the return value.

El contexto de activación se usa durante la activación basada en manifiestos para configurar la Directiva de dominio y proporcionar un modelo de seguridad basado en la aplicación.The activation context is used during manifest-based activation to set up the domain policy and to provide an application-based security model. La clase ActivationContext contiene un objeto ApplicationIdentity que proporciona acceso al manifiesto de aplicación.The ActivationContext class contains an ApplicationIdentity object that provides access to the application manifest. Para obtener más información, vea la clase ApplicationSecurityManager.For more information, see the ApplicationSecurityManager class.

Consulte también:

CreateInstance(AppDomain, String, String)

Crea una instancia del tipo cuyo nombre se especifica en el dominio remoto indicado, usando el ensamblado con nombre y el constructor sin parámetros.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName);
static member CreateInstance : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String) As ObjectHandle

Parámetros

domain
AppDomain

Dominio remoto en el que se crea el tipo denominado typeName.The remote domain where the type named typeName is created.

assemblyName
String

Nombre del ensamblado en el que se busca el tipo denominado typeName.The name of the assembly where the type named typeName is sought. Si assemblyName es null, se busca en el ensamblado que se está ejecutando.If assemblyName is null, the executing assembly is searched.

typeName
String

Nombre completo del tipo preferido.The fully qualified name of the preferred type.

Devoluciones

Identificador que debe desempaquetarse para obtener acceso a la instancia recién creada.A handle that must be unwrapped to access the newly created instance.

Atributos

Excepciones

typeName o domain es null.typeName or domain is null.

No se encontró ningún constructor público coincidente.No matching public constructor was found.

No se encontró typename en assemblyName.typename was not found in assemblyName.

No se encontró assemblyName.assemblyName was not found.

El llamador no tiene permiso para llamar a este constructor.The caller does not have permission to call this constructor.

No se puede crear una instancia de un tipo abstracto.Cannot create an instance of an abstract type.

o bien-or-

Este miembro se invocó con un mecanismo de enlace en tiempo de ejecución.This member was invoked with a late-binding mechanism.

El constructor, que se invocó mediante reflexión, inició una excepción.The constructor, which was invoked through reflection, threw an exception.

El tipo COM no se obtuvo a través de GetTypeFromProgID o GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

No se admite la creación de tipos TypedReference, ArgIterator, Void y RuntimeArgumentHandle, ni de matrices de estos tipos.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

assemblyName no es un ensamblado válido.assemblyName is not a valid assembly.

O bien-or- Common Language Runtime (CLR) 2.0 o una versión posterior está cargado actualmente y assemblyName se compiló para una versión de CLR posterior a la versión cargada actualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Tenga en cuenta que las versiones 2.0, 3.0 y 3.5 de .NET Framework usan CLR versión 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Se cargó un ensamblado o módulo dos veces con dos evidencias diferentes.An assembly or module was loaded twice with two different evidences.

o bien-or-

El nombre o la base de código del ensamblado no son válidos.The assembly name or code base is invalid.

Comentarios

Use CreateInstance cuando un host necesite ejecutar código en un dominio de aplicación que tenga permisos de seguridad restringidos.Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

Utilice ObjectHandle.Unwrap para desencapsular el valor devuelto.Use ObjectHandle.Unwrap to unwrap the return value.

Nota

Este método usa SecurityAction.LinkDemand para requerir que el llamador inmediato tenga plena confianza.This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

Seguridad

SecurityPermission
permite llamar a código no administrado al crear una instancia de un delegado.for the ability to call unmanaged code when creating an instance of a delegate. Enumeración asociada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
permite invocar operaciones en todos los miembros de tipo.for the ability to invoke operations on all type members. Enumeración asociada: MemberAccessAssociated enumeration: MemberAccess

SecurityCriticalAttribute
Requiere plena confianza para el llamador inmediato.requires full trust for the immediate caller. Este miembro no puede ser utilizado por código transparente o de confianza parcial.This member cannot be used by partially trusted or transparent code.

CreateInstance<T>()

Crea una instancia del tipo designado por el parámetro de tipo genérico especificado, usando el constructor sin parámetros.Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

public:
generic <typename T>
 static T CreateInstance();
public static T CreateInstance<T> ();
static member CreateInstance : unit -> 'T
Public Shared Function CreateInstance(Of T) () As T

Parámetros de tipo

T

Tipo que se va a crear.The type to create.

Devoluciones

T

Referencia al objeto recién creado.A reference to the newly created object.

Excepciones

En .NET para aplicaciones de la Tienda Windows o la Biblioteca de clases portable, capture en su lugar la excepción de clase base, MissingMemberException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

No se puede crear una instancia de una clase abstracta o el tipo especificado para T no tiene un constructor sin parámetros.Cannot create an instance of an abstract class, or the type that is specified for T does not have a parameterless constructor.

Comentarios

Los compiladores usan el método genérico CreateInstance<T>() para implementar la creación de instancias de los tipos especificados por los parámetros de tipo.The CreateInstance<T>() generic method is used by compilers to implement the instantiation of types specified by type parameters. Por ejemplo, en el siguiente método genérico, la implementación de new T() (gcnew T() en C++) utiliza el método genérico CreateInstance<T>().For example, in the following generic method, the implementation of new T() (gcnew T() in C++) uses the CreateInstance<T>() generic method.

public:
    generic <typename T> where T:gcnew()
    static T Bar()
    {
        return gcnew T();
    }
public static T Factory<T>() where T : new()
{
    return new T();
}
Public Shared Function Factory(Of T As New)() As T
    Return New T()
End Function

En general, no se usa el método genérico CreateInstance<T>() en el código de aplicación, porque el tipo debe conocerse en tiempo de compilación.In general, there is no use for the CreateInstance<T>() generic method in application code, because the type must be known at compile time. Si se conoce el tipo en tiempo de compilación, se puede usar la sintaxis de creación de instancias normal C#(new operador en, New en C++Visual Basic, gcnew en).If the type is known at compile time, normal instantiation syntax can be used (new operator in C#, New in Visual Basic, gcnew in C++). Si no se conoce el tipo en tiempo de compilación, puede llamar a una sobrecarga no genérica de CreateInstance.If the type is not known at compile time, you can call a non-generic overload of CreateInstance.

No hay sobrecargas del método genérico CreateInstance<T>() que tomen listas de argumentos, porque las sobrecargas no genéricas de CreateInstance ya proporcionan una resolución de constructor enlazada en tiempo de ejecución.There are no overloads of the CreateInstance<T>() generic method that take argument lists, because the non-generic overloads of CreateInstance already provide late-bound constructor resolution.

Se aplica a