AppDomain.CreateInstanceFrom Método

Definición

Crea una nueva instancia de un tipo especificado definido en el archivo de ensamblado especificado.Creates a new instance of a specified type defined in the specified assembly file.

Sobrecargas

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

Crea una nueva instancia del tipo especificado definido en el archivo de ensamblado especificado.Creates a new instance of the specified type defined in the specified assembly file.

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

Crea una nueva instancia del tipo especificado definido en el archivo de ensamblado especificado.Creates a new instance of the specified type defined in the specified assembly file.

CreateInstanceFrom(String, String, Object[])

Crea una nueva instancia del tipo especificado definido en el archivo de ensamblado especificado.Creates a new instance of the specified type defined in the specified assembly file.

CreateInstanceFrom(String, String)

Crea una nueva instancia del tipo especificado definido en el archivo de ensamblado especificado.Creates a new instance of the specified type defined in the specified assembly file.

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

Advertencia

Esta API está ya obsoleta.

Crea una nueva instancia del tipo especificado definido en el archivo de ensamblado especificado.Creates a new instance of the specified type defined in the specified assembly file.

public:
 System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, 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("Use an overload that does not take an Evidence parameter")]
[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 CreateInstanceFrom which does not take an Evidence parameter. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, 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);
member this.CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle

Parámetros

assemblyFile
String

Nombre, incluida la ruta de acceso, de un archivo que contiene un ensamblado que define el tipo solicitado.The name, including the path, of a file that contains an assembly that defines the requested type. El ensamblado se carga mediante el método LoadFrom(String).The assembly is loaded using the LoadFrom(String) method.

typeName
String

Nombre completo del tipo solicitado, incluido el espacio de nombres, pero no el ensamblado, tal y como lo devuelve la propiedad FullName.The fully qualified name of the requested type, including the namespace but not the assembly, as returned by the FullName property.

ignoreCase
Boolean

Valor booleano que especifica si va a realizarse una búsqueda con distinción de mayúsculas y minúsculas.A Boolean value specifying whether to perform a case-sensitive search or not.

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 permite el enlace, la conversión de tipos de argumentos, la llamada de miembros y la recuperación de objetos MemberInfo mediante reflexión.An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects through reflection. Si binder es null, se usará el enlazador predeterminado.If binder is null, the default binder is used.

args
Object[]

Argumentos que se van a pasar al constructor.The arguments to pass to the constructor. Esta matriz de argumentos debe coincidir en número, orden y tipo con los parámetros del constructor que se va a invocar.This array of arguments must match in number, order, and type the parameters of the constructor to invoke. Si se prefiere usar el constructor sin parámetros, args debe ser una matriz vacía o null.If the parameterless constructor is preferred, args must be an empty array or null.

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 único objeto UrlAttribute que especifica la dirección URL necesaria para activar un objeto remoto.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.

securityAttributes
Evidence

Información que se usa para autorizar la creación de typeName.Information used to authorize creation of typeName.

Devoluciones

Objeto contenedor de la nueva instancia o null, si no se encuentra el parámetro typeName.An object that is a wrapper for the new instance, or null if typeName is not found. El valor devuelto debe desempaquetarse para obtener acceso al objeto real.The return value needs to be unwrapped to access the real object.

Implementaciones

Atributos

Excepciones

assemblyFile es null.assemblyFile is null.

o bien-or- typeName es null.typeName is null.

El llamador no puede ofrecer atributos de activación para un objeto que no hereda de MarshalByRefObject.The caller cannot provide activation attributes for an object that does not inherit from MarshalByRefObject.

o bien-or- securityAttributes no es null.securityAttributes is not null. Cuando no se habilita la directiva CAS heredada, securityAttributes debe ser null.When legacy CAS policy is not enabled, securityAttributes should be null.

La operación se intenta en un dominio de aplicación descargado.The operation is attempted on an unloaded application domain.

No se encontró assemblyFile.assemblyFile was not found.

No se encontrótypeName en assemblyFile.typeName was not found in assemblyFile.

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

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

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

o bien-or- La versión 2.0 u otra posterior del Common Language Runtime está cargada actualmente y assemblyFile se compiló con una versión posterior.Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

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

La instancia es null.This instance is null.

Comentarios

Para obtener más información sobre este método, vea el método Activator.CreateInstanceFrom.For more information about this method, see the Activator.CreateInstanceFrom method.

Cuando el método CreateInstanceFrom se usa para crear una instancia de en un dominio de aplicación de destino, que no sea el dominio de aplicación desde el que se realiza la llamada, el ensamblado se carga en el dominio de aplicación de destino.When the CreateInstanceFrom method is used to create an instance in a target application domain, other than the application domain from which the call is made, the assembly is loaded in the target application domain. Sin embargo, si la instancia se desenvuelve en el dominio de aplicación que realiza la llamada, el uso de la instancia desempaquetada de ciertas formas puede hacer que el ensamblado se cargue en el dominio de aplicación que realiza la llamada.However, if the instance is unwrapped in the calling application domain, using the unwrapped instance in certain ways can cause the assembly to be loaded into the calling application domain. Por ejemplo, después de desempaquetar la instancia, es posible que se solicite su información de tipo para poder llamar a sus métodos enlazados en tiempo de ejecución.For example, after the instance is unwrapped, its type information might be requested, in order to call its methods late-bound. Cuando el ensamblado se carga en el dominio de aplicación que realiza la llamada, pueden producirse excepciones.When the assembly is loaded into the calling application domain, exceptions can occur.

  • Si se cargó previamente otra versión del mismo ensamblado en el dominio de aplicación que realiza la llamada, o si la ruta de acceso de carga del dominio de aplicación que realiza la llamada es diferente de la del dominio de aplicación de destino, pueden producirse excepciones como MissingMethodException.If another version of the same assembly was previously loaded into the calling application domain, or if the load path of the calling application domain is different from that of the target application domain, exceptions such as MissingMethodException can occur.

  • Si el dominio de aplicación que realiza la llamada realiza llamadas enlazadas en tiempo de compilación al tipo de instancia, se puede producir InvalidCastException cuando se intenta convertir la instancia.If the calling application domain makes early-bound calls to the instance type, InvalidCastException can be thrown when an attempt is made to cast the instance.

Seguridad

FileIOPermissionAccess
permite leer el archivo que contiene el manifiesto del ensamblado.for the ability to read the file containing the assembly manifest. Enumeración asociada: ReadAssociated enumeration: Read

WebPermission
permite tener acceso a la ubicación del ensamblado si el ensamblado no es local.for the ability to access the location of the assembly if the assembly is not local.

SecurityPermission
para proporcionar evidencias.to provide evidence. Enumeración asociada: ControlEvidence.Associated enumeration: ControlEvidence.

Consulte también:

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

Crea una nueva instancia del tipo especificado definido en el archivo de ensamblado especificado.Creates a new instance of the specified type defined in the specified assembly file.

public:
 System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, 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 System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
member this.CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle

Parámetros

assemblyFile
String

Nombre, incluida la ruta de acceso, de un archivo que contiene un ensamblado que define el tipo solicitado.The name, including the path, of a file that contains an assembly that defines the requested type. El ensamblado se carga mediante el método LoadFrom(String).The assembly is loaded using the LoadFrom(String) method.

typeName
String

Nombre completo del tipo solicitado, incluido el espacio de nombres, pero no el ensamblado, tal y como lo devuelve la propiedad FullName.The fully qualified name of the requested type, including the namespace but not the assembly, as returned by the FullName property.

ignoreCase
Boolean

Valor booleano que especifica si va a realizarse una búsqueda con distinción de mayúsculas y minúsculas.A Boolean value specifying whether to perform a case-sensitive search or not.

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 permite el enlace, la conversión de tipos de argumentos, la llamada de miembros y la recuperación de objetos MemberInfo mediante reflexión.An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects through reflection. Si binder es null, se usará el enlazador predeterminado.If binder is null, the default binder is used.

args
Object[]

Argumentos que se van a pasar al constructor.The arguments to pass to the constructor. Esta matriz de argumentos debe coincidir en número, orden y tipo con los parámetros del constructor que se va a invocar.This array of arguments must match in number, order, and type the parameters of the constructor to invoke. Si se prefiere usar el constructor sin parámetros, args debe ser una matriz vacía o null.If the parameterless constructor is preferred, args must be an empty array or null.

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 único objeto UrlAttribute que especifica la dirección URL necesaria para activar un objeto remoto.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

Objeto contenedor de la nueva instancia o null, si no se encuentra el parámetro typeName.An object that is a wrapper for the new instance, or null if typeName is not found. El valor devuelto debe desempaquetarse para obtener acceso al objeto real.The return value needs to be unwrapped to access the real object.

Excepciones

assemblyFile es null.assemblyFile is null.

o bien-or- typeName es null.typeName is null.

El llamador no puede ofrecer atributos de activación para un objeto que no hereda de MarshalByRefObject.The caller cannot provide activation attributes for an object that does not inherit from MarshalByRefObject.

La operación se intenta en un dominio de aplicación descargado.The operation is attempted on an unloaded application domain.

No se encontró assemblyFile.assemblyFile was not found.

No se encontrótypeName en assemblyFile.typeName was not found in assemblyFile.

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

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

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

o bien-or- assemblyFile se compiló con una versión de Common Language Runtime posterior a la versión que está cargada actualmente.assemblyFile was compiled with a later version of the common language runtime than the version that is currently loaded.

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

La instancia es null.This instance is null.

Comentarios

Para obtener más información, vea el método Activator.CreateInstanceFrom.For more information, see the Activator.CreateInstanceFrom method.

Cuando el método CreateInstanceFrom se usa para crear una instancia de en un dominio de aplicación de destino, que no sea el dominio de aplicación desde el que se realiza la llamada, el ensamblado se carga en el dominio de aplicación de destino.When the CreateInstanceFrom method is used to create an instance in a target application domain, other than the application domain from which the call is made, the assembly is loaded in the target application domain. Sin embargo, si la instancia se desenvuelve en el dominio de aplicación que realiza la llamada, el uso de la instancia desempaquetada de ciertas formas puede hacer que el ensamblado se cargue en el dominio de aplicación que realiza la llamada.However, if the instance is unwrapped in the calling application domain, using the unwrapped instance in certain ways can cause the assembly to be loaded into the calling application domain. Por ejemplo, después de desempaquetar la instancia, es posible que se solicite su información de tipo para poder llamar a sus métodos enlazados en tiempo de ejecución.For example, after the instance is unwrapped, its type information might be requested, in order to call its methods late-bound. Cuando el ensamblado se carga en el dominio de aplicación que realiza la llamada, pueden producirse excepciones.When the assembly is loaded into the calling application domain, exceptions can occur.

  • Si se cargó previamente otra versión del mismo ensamblado en el dominio de aplicación que realiza la llamada, o si la ruta de acceso de carga del dominio de aplicación que realiza la llamada es diferente de la del dominio de aplicación de destino, pueden producirse excepciones como MissingMethodException.If another version of the same assembly was previously loaded into the calling application domain, or if the load path of the calling application domain is different from that of the target application domain, exceptions such as MissingMethodException can occur.

  • Si el dominio de aplicación que realiza la llamada realiza llamadas enlazadas en tiempo de compilación al tipo de instancia, se puede producir InvalidCastException cuando se intenta convertir la instancia.If the calling application domain makes early-bound calls to the instance type, InvalidCastException can be thrown when an attempt is made to cast the instance.

Seguridad

FileIOPermissionAccess
permite leer el archivo que contiene el manifiesto del ensamblado.for the ability to read the file containing the assembly manifest. Enumeración asociada: ReadAssociated enumeration: Read

WebPermission
permite tener acceso a la ubicación del ensamblado si el ensamblado no es local.for the ability to access the location of the assembly if the assembly is not local.

Consulte también:

CreateInstanceFrom(String, String, Object[])

Crea una nueva instancia del tipo especificado definido en el archivo de ensamblado especificado.Creates a new instance of the specified type defined in the specified assembly file.

public:
 virtual System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, object[] activationAttributes);
abstract member CreateInstanceFrom : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstanceFrom : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstanceFrom (assemblyFile As String, typeName As String, activationAttributes As Object()) As ObjectHandle

Parámetros

assemblyFile
String

Nombre, incluida la ruta de acceso, de un archivo que contiene un ensamblado que define el tipo solicitado.The name, including the path, of a file that contains an assembly that defines the requested type. El ensamblado se carga mediante el método LoadFrom(String).The assembly is loaded using the LoadFrom(String) method.

typeName
String

Nombre completo del tipo solicitado, incluido el espacio de nombres, pero no el ensamblado, tal y como lo devuelve la propiedad FullName.The fully qualified name of the requested type, including the namespace but not the assembly, as returned by the FullName property.

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 único objeto UrlAttribute que especifica la dirección URL necesaria para activar un objeto remoto.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. La activación por parte del cliente es una tecnología heredada que se conserva para la compatibilidad con versiones anteriores, pero no se recomienda para nuevo desarrollo.This parameter is related to client-activated objects.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

Objeto contenedor de la nueva instancia o null, si no se encuentra el parámetro typeName.An object that is a wrapper for the new instance, or null if typeName is not found. El valor devuelto debe desempaquetarse para obtener acceso al objeto real.The return value needs to be unwrapped to access the real object.

Implementaciones

Excepciones

assemblyFile es null.assemblyFile is null.

No se encontró assemblyFile.assemblyFile was not found.

No se encontró typeName en assemblyFile.typeName was not found in assemblyFile.

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

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

El llamador no puede ofrecer atributos de activación para un objeto que no hereda de MarshalByRefObject.The caller cannot provide activation attributes for an object that does not inherit from MarshalByRefObject.

La operación se intenta en un dominio de aplicación descargado.The operation is attempted on an unloaded application domain.

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

o bien-or- La versión 2.0 u otra posterior del Common Language Runtime está cargada actualmente y assemblyFile se compiló con una versión posterior.Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

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

La instancia es null.This instance is null.

Comentarios

Se invoca el constructor sin parámetros para typeName.The parameterless constructor for typeName is invoked.

Para obtener más información sobre este método, vea el método Activator.CreateInstanceFrom.For more information about this method, see the Activator.CreateInstanceFrom method.

Cuando el método CreateInstanceFrom se usa para crear una instancia de en un dominio de aplicación de destino, que no sea el dominio de aplicación desde el que se realiza la llamada, el ensamblado se carga en el dominio de aplicación de destino.When the CreateInstanceFrom method is used to create an instance in a target application domain, other than the application domain from which the call is made, the assembly is loaded in the target application domain. Sin embargo, si la instancia se desenvuelve en el dominio de aplicación que realiza la llamada, el uso de la instancia desempaquetada de ciertas formas puede hacer que el ensamblado se cargue en el dominio de aplicación que realiza la llamada.However, if the instance is unwrapped in the calling application domain, using the unwrapped instance in certain ways can cause the assembly to be loaded into the calling application domain. Por ejemplo, después de desempaquetar la instancia, es posible que se solicite su información de tipo para poder llamar a sus métodos enlazados en tiempo de ejecución.For example, after the instance is unwrapped, its type information might be requested, in order to call its methods late-bound. Cuando el ensamblado se carga en el dominio de aplicación que realiza la llamada, pueden producirse excepciones.When the assembly is loaded into the calling application domain, exceptions can occur.

  • Si se cargó previamente otra versión del mismo ensamblado en el dominio de aplicación que realiza la llamada, o si la ruta de acceso de carga del dominio de aplicación que realiza la llamada es diferente de la del dominio de aplicación de destino, pueden producirse excepciones como MissingMethodException.If another version of the same assembly was previously loaded into the calling application domain, or if the load path of the calling application domain is different from that of the target application domain, exceptions such as MissingMethodException can occur.

  • Si el dominio de aplicación que realiza la llamada realiza llamadas enlazadas en tiempo de compilación al tipo de instancia, se puede producir InvalidCastException cuando se intenta convertir la instancia.If the calling application domain makes early-bound calls to the instance type, InvalidCastException can be thrown when an attempt is made to cast the instance.

Seguridad

FileIOPermissionAccess
permite leer el archivo que contiene el manifiesto del ensamblado.for the ability to read the file containing the assembly manifest. Enumeración asociada: ReadAssociated enumeration: Read

WebPermission
permite tener acceso a la ubicación del ensamblado si el ensamblado no es local.for the ability to access the location of the assembly if the assembly is not local.

Consulte también:

CreateInstanceFrom(String, String)

Crea una nueva instancia del tipo especificado definido en el archivo de ensamblado especificado.Creates a new instance of the specified type defined in the specified assembly file.

public:
 virtual System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName);
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName);
abstract member CreateInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstanceFrom (assemblyFile As String, typeName As String) As ObjectHandle

Parámetros

assemblyFile
String

Nombre, incluida la ruta de acceso, de un archivo que contiene un ensamblado que define el tipo solicitado.The name, including the path, of a file that contains an assembly that defines the requested type. El ensamblado se carga mediante el método LoadFrom(String).The assembly is loaded using the LoadFrom(String) method.

typeName
String

Nombre completo del tipo solicitado, incluido el espacio de nombres, pero no el ensamblado, tal y como lo devuelve la propiedad FullName.The fully qualified name of the requested type, including the namespace but not the assembly, as returned by the FullName property.

Devoluciones

Objeto contenedor de la nueva instancia o null, si no se encuentra el parámetro typeName.An object that is a wrapper for the new instance, or null if typeName is not found. El valor devuelto debe desempaquetarse para obtener acceso al objeto real.The return value needs to be unwrapped to access the real object.

Implementaciones

Excepciones

assemblyFile es null.assemblyFile is null.

o bien-or- typeName es null.typeName is null.

No se encontró assemblyFile.assemblyFile was not found.

No se encontró typeName en assemblyFile.typeName was not found in assemblyFile.

La operación se intenta en un dominio de aplicación descargado.The operation is attempted on an unloaded application domain.

No se ha encontrado ningún constructor público sin parámetros.No parameterless public constructor was found.

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

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

o bien-or- La versión 2.0 u otra posterior del Common Language Runtime está cargada actualmente y assemblyFile se compiló con una versión posterior.Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

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

La instancia es null.This instance is null.

Ejemplos

En el ejemplo siguiente se muestra cómo usar la sobrecarga del método CreateInstanceFrom(String, String) para crear una instancia de un objeto en un dominio de aplicación de destino y llamar a sus métodos.The following example shows how to use the CreateInstanceFrom(String, String) method overload to create an instance of an object in a target application domain and call its methods.

En el ejemplo se define la clase MarshalableExample, que se puede serializar en los límites del dominio de aplicación.The example defines the MarshalableExample class, which can be marshaled across application domain boundaries. En el ejemplo se crea una ruta de acceso al ensamblado que se está ejecutando actualmente, se crea un dominio de aplicación de destino y se usa la sobrecarga del método CreateInstanceFrom(String, String) para cargar el ensamblado de ejemplo en el dominio de aplicación de destino y crear una instancia de MarshalableExample.The example builds a path to the currently executing assembly, creates a target application domain, and uses the CreateInstanceFrom(String, String) method overload to load the example assembly into the target application domain and create an instance of MarshalableExample.

Nota

La ruta de acceso es absoluta en este ejemplo, pero una ruta de acceso relativa también funcionaría porque el método Assembly.LoadFrom se usa para cargar el ensamblado.The path is absolute in this example, but a relative path would also work because the Assembly.LoadFrom method is used to load the assembly.

Después de desencapsular el identificador de objeto, en el ejemplo se muestran tres maneras de usar un objeto en un dominio de aplicación de destino:After unwrapping the object handle, the example demonstrates three ways to use an object in a target application domain:

  • Invocar un método con enlace en tiempo de ejecución mediante reflexión.Invoking a method with late binding, using reflection. Esto requiere la información de tipo, lo que hace que el ensamblado se cargue en el dominio de aplicación del llamador.This requires type information, which causes the assembly to be loaded into the application domain of the caller. (En este ejemplo, ya está cargado).(In this example, it is already loaded.)

  • Convertir el objeto en una interfaz conocida para el llamador y el destinatario.Casting the object to an interface known to both the caller and the callee. Si la interfaz se define en el ensamblado que realiza la llamada o en otro ensamblado al que hace referencia el llamador y el destinatario, el ensamblado llamado no se carga en el dominio de aplicación del llamador.If the interface is defined in the calling assembly or in a third assembly referenced by both the caller and the callee, the called assembly is not loaded into the application domain of the caller.

  • Usar el objeto directamente cuando el llamador conoce su tipo.Using the object directly when its type is known to the caller. El ensamblado debe cargarse en el dominio de aplicación del llamador.The assembly must be loaded into the application domain of the caller.

Otra manera de evitar cargar el ensamblado llamado en el dominio de aplicación del llamador es que el llamador derive de la clase MarshalByRefObject y para definir un método que se pueda ejecutar en el dominio de aplicación de destino.Another way to avoid loading the called assembly into the application domain of the caller is for the caller to derive from the MarshalByRefObject class and to define a method that can be run in the target application domain. Ese método puede usar la reflexión para examinar un ensamblado de destino, porque el ensamblado de destino ya está cargado en el dominio de aplicación de destino.That method can use reflection to examine a target assembly, because the target assembly is already loaded into the target application domain. Vea el ejemplo de la propiedad DynamicDirectory.See the example for the DynamicDirectory property.

using namespace System;

public interface class ITest
{
    void Test(String^ greeting);
};

public ref class MarshalableExample : MarshalByRefObject, ITest
{
public:
    virtual void Test(String^ greeting)
    {
        Console::WriteLine("{0} from '{1}'!", greeting,
            AppDomain::CurrentDomain->FriendlyName);
    }
};

void main()
{
    // Construct a path to the current assembly.
    String^ assemblyPath = Environment::CurrentDirectory + "\\" +
        MarshalableExample::typeid->Assembly->GetName()->Name + ".exe";

    AppDomain^ ad = AppDomain::CreateDomain("MyDomain");
 
    System::Runtime::Remoting::ObjectHandle^ oh = 
        ad->CreateInstanceFrom(assemblyPath, "MarshalableExample");

    Object^ obj = oh->Unwrap();


    // Three ways to use the newly created object, depending on how
    // much is known about the type: Late bound, early bound through 
    // a mutually known interface, or early binding of a known type.
    //
    obj->GetType()->InvokeMember("Test", 
        System::Reflection::BindingFlags::InvokeMethod, 
        Type::DefaultBinder, obj, gcnew array<Object^> { "Hello" });

    ITest^ it = (ITest^) obj;
    it->Test("Hi");

    MarshalableExample^ ex = (MarshalableExample^) obj;
    ex->Test("Goodbye");
}

/* This example produces the following output:

Hello from 'MyDomain'!
Hi from 'MyDomain'!
Goodbye from 'MyDomain'!
 */
using System;

public interface ITest
{
    void Test(string greeting);
}

public class MarshalableExample : MarshalByRefObject, ITest
{
    static void Main()
    {
        // Construct a path to the current assembly.
        string assemblyPath = Environment.CurrentDirectory + "\\" +
            typeof(MarshalableExample).Assembly.GetName().Name + ".exe";

        AppDomain ad = AppDomain.CreateDomain("MyDomain");
 
        System.Runtime.Remoting.ObjectHandle oh = 
            ad.CreateInstanceFrom(assemblyPath, "MarshalableExample");

        object obj = oh.Unwrap();


        // Three ways to use the newly created object, depending on how
        // much is known about the type: Late bound, early bound through 
        // a mutually known interface, or early binding of a known type.
        //
        obj.GetType().InvokeMember("Test", 
            System.Reflection.BindingFlags.InvokeMethod, 
            Type.DefaultBinder, obj, new object[] { "Hello" });

        ITest it = (ITest) obj;
        it.Test("Hi");

        MarshalableExample ex = (MarshalableExample) obj;
        ex.Test("Goodbye");
    }

    public void Test(string greeting)
    {
        Console.WriteLine("{0} from '{1}'!", greeting,
            AppDomain.CurrentDomain.FriendlyName);
    }
}

/* This example produces the following output:

Hello from 'MyDomain'!
Hi from 'MyDomain'!
Goodbye from 'MyDomain'!
 */
Public Interface ITest

    Sub Test(ByVal greeting As String)
End Interface

Public Class MarshalableExample 
    Inherits MarshalByRefObject
    Implements ITest

    Shared Sub Main()
    
        ' Construct a path to the current assembly.
        Dim assemblyPath As String = Environment.CurrentDirectory & "\" &
            GetType(MarshalableExample).Assembly.GetName().Name & ".exe"

        Dim ad As AppDomain = AppDomain.CreateDomain("MyDomain")
 
        Dim oh As System.Runtime.Remoting.ObjectHandle = 
            ad.CreateInstanceFrom(assemblyPath, "MarshalableExample")

        Dim obj As Object = oh.Unwrap()


        ' Three ways to use the newly created object, depending on how
        ' much is known about the type: Late bound, early bound through 
        ' a mutually known interface, or early binding of a known type.
        '
        obj.GetType().InvokeMember("Test", 
            System.Reflection.BindingFlags.InvokeMethod, 
            Type.DefaultBinder, obj, New Object() { "Hello" })

        Dim it As ITest = CType(obj, ITest) 
        it.Test("Hi")

        Dim ex As MarshalableExample = CType(obj, MarshalableExample) 
        ex.Test("Goodbye")
    End Sub

    Public Sub Test(ByVal greeting As String) Implements ITest.Test
    
        Console.WriteLine("{0} from '{1}'!", greeting,
            AppDomain.CurrentDomain.FriendlyName)
    End Sub
End Class

' This example produces the following output:
'
'Hello from 'MyDomain'!
'Hi from 'MyDomain'!
'Goodbye from 'MyDomain'!

Comentarios

Se invoca el constructor sin parámetros para typeName.The parameterless constructor for typeName is invoked.

Para obtener más información, vea el método Activator.CreateInstanceFrom.For more information, see the Activator.CreateInstanceFrom method.

Cuando el método CreateInstanceFrom se usa para crear una instancia de en un dominio de aplicación de destino, que no sea el dominio de aplicación desde el que se realiza la llamada, el ensamblado se carga en el dominio de aplicación de destino.When the CreateInstanceFrom method is used to create an instance in a target application domain, other than the application domain from which the call is made, the assembly is loaded in the target application domain. Sin embargo, si la instancia se desenvuelve en el dominio de aplicación que realiza la llamada, el uso de la instancia desempaquetada de ciertas formas puede hacer que el ensamblado se cargue en el dominio de aplicación que realiza la llamada.However, if the instance is unwrapped in the calling application domain, using the unwrapped instance in certain ways can cause the assembly to be loaded into the calling application domain. Por ejemplo, después de desempaquetar la instancia, es posible que se solicite su información de tipo para poder llamar a sus métodos enlazados en tiempo de ejecución.For example, after the instance is unwrapped, its type information might be requested, in order to call its methods late-bound. Cuando el ensamblado se carga en el dominio de aplicación que realiza la llamada, pueden producirse excepciones.When the assembly is loaded into the calling application domain, exceptions can occur.

  • Si se cargó previamente otra versión del mismo ensamblado en el dominio de aplicación que realiza la llamada, o si la ruta de acceso de carga del dominio de aplicación que realiza la llamada es diferente de la del dominio de aplicación de destino, pueden producirse excepciones como MissingMethodException.If another version of the same assembly was previously loaded into the calling application domain, or if the load path of the calling application domain is different from that of the target application domain, exceptions such as MissingMethodException can occur.

  • Si el dominio de aplicación que realiza la llamada realiza llamadas enlazadas en tiempo de compilación al tipo de instancia, se puede producir InvalidCastException cuando se intenta convertir la instancia.If the calling application domain makes early-bound calls to the instance type, InvalidCastException can be thrown when an attempt is made to cast the instance.

Seguridad

FileIOPermissionAccess
permite leer el archivo que contiene el manifiesto del ensamblado.for the ability to read the file containing the assembly manifest. Enumeración asociada: ReadAssociated enumeration: Read

WebPermission
permite tener acceso a la ubicación del ensamblado si el ensamblado no es local.for the ability to access the location of the assembly if the assembly is not local.

Consulte también:

Se aplica a