Assembly.LoadFrom Método

Definición

Carga un ensamblado.Loads an assembly.

Sobrecargas

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)

Carga un ensamblado a partir de su nombre o ruta de acceso de archivo, evidencia de seguridad, valor hash y algoritmo hash.Loads an assembly given its file name or path, security evidence, hash value, and hash algorithm.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Carga un ensamblado a partir de su nombre o ruta de acceso de archivo, valor hash y algoritmo hash.Loads an assembly given its file name or path, hash value, and hash algorithm.

LoadFrom(String)

Carga un ensamblado a partir del nombre o ruta de acceso del archivo.Loads an assembly given its file name or path.

LoadFrom(String, Evidence)

Carga un ensamblado determinado a partir del nombre o ruta de acceso del archivo, a la vez que proporciona evidencia de seguridad.Loads an assembly given its file name or path and supplying security evidence.

Comentarios

A partir de .NET Framework 4, la capacidad de ejecutar código en los ensamblados cargados desde ubicaciones remotas está deshabilitada de forma predeterminada y la llamada al método LoadFrom produce una FileLoadException.Starting with .NET Framework 4, the ability to execute code in assemblies loaded from remote locations is disabled by default, and the call to the LoadFrom method throws a FileLoadException. Para cargar el ensamblado y ejecutar su código, debe:To load the assembly and execute its code, you must either:

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)

Advertencia

Esta API está ya obsoleta.

Carga un ensamblado a partir de su nombre o ruta de acceso de archivo, evidencia de seguridad, valor hash y algoritmo hash.Loads an assembly given its file name or path, security evidence, hash value, and hash algorithm.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete]
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member LoadFrom : string * System.Security.Policy.Evidence * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

Parámetros

assemblyFile
String

Nombre o ruta de acceso del archivo que contiene el manifiesto del ensamblado.The name or path of the file that contains the manifest of the assembly.

securityEvidence
Evidence

Evidencia para cargar el ensamblado.Evidence for loading the assembly.

hashValue
Byte[]

Valor del código hash calculado.The value of the computed hash code.

hashAlgorithm
AssemblyHashAlgorithm

Algoritmo hash utilizado para los archivos hash y para generar el nombre seguro.The hash algorithm used for hashing files and for generating the strong name.

Devoluciones

Ensamblado cargado.The loaded assembly.

Atributos

Excepciones

assemblyFile es null.assemblyFile is null.

No se encuentra assemblyFile o el módulo que está intentando cargar no especifica una extensión de nombre de archivo.assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

No se pudo cargar un archivo que se encontró.A file that was found could not be loaded.

O bien-or- El elemento securityEvidence no es ambiguo y se determinó que no es válido.The securityEvidence is not ambiguous and is determined to be invalid.

O bien-or-

La capacidad de ejecutar código en los ensamblados remotos está deshabilitada.The ability to execute code in remote assemblies is disabled. Vea <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile no es un ensamblado válido; por ejemplo, un ensamblado de 32 bits en un proceso de 64 bits.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Consulte el tema sobre excepciones para obtener más información.See the exception topic for more information.

O bien-or- La versión 2.0 u otra posterior de 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 especificó un código base que no comienza con "file://" sin el WebPermission necesario.A codebase that does not start with "file://" was specified without the required WebPermission.

El parámetro assemblyFile es una cadena vacía ("").The assemblyFile parameter is an empty string ("").

El nombre del ensamblado supera la longitud máxima definida por el sistema.The assembly name exceeds the system-defined maximum length.

Comentarios

El parámetro assemblyFile debe hacer referencia a un URI sin caracteres de escape.The assemblyFile parameter must refer to a URI without escape characters. Este método proporciona caracteres de escape para todos los caracteres no válidos del URI.This method supplies escape characters for all invalid characters in the URI.

Nota

No se admite el protocolo de transferencia de archivos (FTP).File transfer protocol (FTP) is not supported. Si el URI proporcionado para assemblyFile es una dirección FTP, el ensamblado no se carga.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. No se inicia ninguna excepción.No exception is thrown.

assemblyFile puede ser absoluta o relativa al directorio actual, y el ensamblado se carga en el dominio del llamador.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Los ensamblados se pueden cargar en uno de tres contextos o se pueden cargar sin contexto:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • El contexto de carga contiene ensamblados que se encuentran al sondear: en la GAC, en un almacén de ensamblado de host si el tiempo de ejecución está hospedado, o en el ApplicationBase y PrivateBinPath del dominio de aplicación.The load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. La mayoría de las sobrecargas del método Load carga ensamblados en este contexto.Most overloads of the Load method load assemblies into this context.

  • El contexto de carga desde contiene los ensamblados para los que el usuario proporcionó una ruta de acceso no incluida en los directorios buscados mediante sondeo.The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFrom, CreateInstanceFrom y ExecuteAssembly son ejemplos de métodos que cargan por ruta de acceso.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    A partir de .NET Framework 4, si el URI de assemblyFile especifica una ubicación remota, la carga de ensamblados está deshabilitada de forma predeterminada y el método LoadFrom produce una FileLoadException.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Para habilitar la ejecución de código cargado desde ubicaciones remotas, puede utilizar el elemento de configuración <loadFromRemoteSources> .To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • El contexto de solo reflexión contiene ensamblados cargados con los métodos ReflectionOnlyLoad y ReflectionOnlyLoadFrom; no se puede ejecutar el código en estos contextos.The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Si el usuario ha generado o encontrado el ensamblado, no se encuentra en ningún contexto.If the user generated or found the assembly, it is not in any context. Esto se aplica a los ensamblados cargados mediante sobrecargas del método Load que especifican una matriz de bytes que contiene un ensamblado, y a los ensamblados dinámicos transitorios creados con la emisión de la reflexión y no se guardan en el disco.This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

El contexto de carga desde permite cargar un ensamblado desde una ruta de acceso no incluida en el sondeo y, además, permite encontrar y cargar las dependencias de esa ruta de acceso porque el contexto mantiene la información de la ruta de acceso.The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

El método LoadFrom tiene las siguientes desventajas.The LoadFrom method has the following disadvantages. Considere usar Load en su lugar.Consider using Load instead.

  • Si hay un ensamblado con la misma identidad ya cargado, LoadFrom devuelve el ensamblado cargado aunque se haya especificado otra ruta de acceso.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Si un ensamblado se carga con LoadFromy, posteriormente, un ensamblado en el contexto de carga intenta cargar el mismo ensamblado por el nombre para mostrar, se produce un error en el intento de carga.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Esto puede ocurrir cuando se deserializa un ensamblado.This can occur when an assembly is deserialized.

  • Si un ensamblado se carga con LoadFrom, y la ruta de acceso de sondeo incluye un ensamblado con la misma identidad pero una ubicación diferente, puede producirse un InvalidCastException, MissingMethodExceptionu otro comportamiento inesperado.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom exige FileIOPermissionAccess.Read y FileIOPermissionAccess.PathDiscovery, o WebPermission, en la ruta de acceso especificada.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Si existe una imagen nativa para assemblyFile, no se utiliza.If a native image exists for assemblyFile, it is not used. No se puede cargar el ensamblado como dominio neutro.The assembly cannot be loaded as domain neutral.

  • En la .NET Framework versión 1,0 y 1,1, no se aplica la Directiva.In the .NET Framework version 1.0 and 1.1, policy is not applied.

La concesión de permisos específicos para un ensamblado se basa en la evidencia.Whether certain permissions are granted or not granted to an assembly is based on evidence. Las reglas de combinación de evidencia de ensamblado y seguridad son las siguientes:The rules for assembly and security evidence merging are as follows:

  • Cuando se usa un método LoadFrom sin ningún parámetro Evidence, el ensamblado se carga con la evidencia que proporciona el cargador.When you use a LoadFrom method with no Evidence parameter, the assembly is loaded with the evidence that the loader supplies.

  • Cuando se usa un método LoadFrom con un parámetro Evidence, se combinan los elementos de evidencia.When you use a LoadFrom method with an Evidence parameter, pieces of evidence are merged. Los elementos de evidencia que se proporcionan como argumento al método LoadFrom reemplazan a los elementos de evidencia proporcionados por el cargador.Pieces of evidence supplied as an argument to the LoadFrom method supersede pieces of evidence supplied by the loader.

  • Si llama a este método más de una vez en el mismo ensamblado pero con una evidencia diferente especificada, el Common Language Runtime no inicia una FileLoadException porque no se puede determinar la igualdad y la integridad de las distintas especificaciones de evidencia.If you call this method more than once on the same assembly but with a different evidence specified, the common language runtime does not throw a FileLoadException because the equality and integrity of the different evidence specifications cannot be determined. La evidencia que primero se realiza correctamente es la evidencia que se utiliza.The evidence that first succeeds is the evidence that is used.

  • Cuando se usa un método LoadFrom con un parámetro Byte[] para cargar una imagen de formato de archivo de objeto común (COFF), se combina la evidencia.When you use a LoadFrom method with a Byte[] parameter to load a common object file format (COFF) image, evidence is combined. Zone, Url y Site se heredan del ensamblado que realiza la llamada y Hash y StrongName se toman del ensamblado COFF.Zone, Url and Site are inherited from the calling assembly, and Hash and StrongName are taken from the COFF assembly.

  • Cuando se usa un método LoadFrom con un parámetro Byte[] y Evidence para cargar una imagen COFF, solo se utiliza la evidencia proporcionada.When you use a LoadFrom method with a Byte[] parameter and Evidence to load a COFF image, only the supplied evidence is used. Se omite la evidencia del ensamblado que realiza la llamada y la evidencia de la imagen COFF.Evidence of the calling assembly and evidence of the COFF image is ignored.

Seguridad

SecurityPermission
para cargar un ensamblado con evidencia.to load an assembly with evidence. Enumeración asociada: ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
para leer un URI que comienza con "file://".for reading a URI that begins with "file://". Enumeración asociada: ReadAssociated enumeration: Read

WebPermission
para leer un URI que no comienza por "file://".for reading a URI that does not begin with "file://".

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Carga un ensamblado a partir de su nombre o ruta de acceso de archivo, valor hash y algoritmo hash.Loads an assembly given its file name or path, hash value, and hash algorithm.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

Parámetros

assemblyFile
String

Nombre o ruta de acceso del archivo que contiene el manifiesto del ensamblado.The name or path of the file that contains the manifest of the assembly.

hashValue
Byte[]

Valor del código hash calculado.The value of the computed hash code.

hashAlgorithm
AssemblyHashAlgorithm

Algoritmo hash utilizado para los archivos hash y para generar el nombre seguro.The hash algorithm used for hashing files and for generating the strong name.

Devoluciones

Ensamblado cargado.The loaded assembly.

Excepciones

El valor de assemblyFile es null.assemblyFile is null.

No se encuentra assemblyFile o el módulo que está intentando cargar no especifica una extensión de nombre de archivo.assemblyFile is not found, or the module you are trying to load does not specify a file name extension.

No se pudo cargar un archivo que se encontró.A file that was found could not be loaded.

O bien-or-

La capacidad de ejecutar código en los ensamblados remotos está deshabilitada.The ability to execute code in remote assemblies is disabled. Vea <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile no es un ensamblado válido; por ejemplo, un ensamblado de 32 bits en un proceso de 64 bits.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Consulte el tema sobre excepciones para obtener más información.See the exception topic for more information.

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 especificó un código base que no comienza con "file://" sin el WebPermission necesario.A codebase that does not start with "file://" was specified without the required WebPermission.

El parámetro assemblyFile es una cadena vacía ("").The assemblyFile parameter is an empty string ("").

El nombre del ensamblado supera la longitud máxima definida por el sistema.The assembly name exceeds the system-defined maximum length.

Comentarios

El parámetro assemblyFile debe hacer referencia a un URI sin caracteres de escape.The assemblyFile parameter must refer to a URI without escape characters. Este método proporciona caracteres de escape para todos los caracteres no válidos del URI.This method supplies escape characters for all invalid characters in the URI.

Nota

No se admite el protocolo de transferencia de archivos (FTP).File transfer protocol (FTP) is not supported. Si el URI proporcionado para assemblyFile es una dirección FTP, el ensamblado no se carga.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. No se inicia ninguna excepción.No exception is thrown.

assemblyFile puede ser absoluta o relativa al directorio actual, y el ensamblado se carga en el dominio del llamador.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Los ensamblados se pueden cargar en uno de tres contextos o se pueden cargar sin contexto:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • El contexto de carga contiene ensamblados que se encuentran al sondear: en la caché global de ensamblados, en un almacén de ensamblado de host si el tiempo de ejecución está hospedado, o en el ApplicationBase y PrivateBinPath del dominio de aplicación.The load context contains assemblies found by probing: in the global assembly cache, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. La mayoría de las sobrecargas del método Load carga ensamblados en este contexto.Most overloads of the Load method load assemblies into this context.

  • El contexto de carga desde contiene los ensamblados para los que el usuario proporcionó una ruta de acceso que no se incluye en el sondeo.The load-from context contains assemblies for which the user provided a path that is not included in probing. LoadFrom, CreateInstanceFrom y ExecuteAssembly son ejemplos de métodos que cargan por ruta de acceso.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    A partir de .NET Framework 4, si el URI de assemblyFile especifica una ubicación remota, la carga de ensamblados está deshabilitada de forma predeterminada y el método LoadFrom produce una FileLoadException.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Para habilitar la ejecución de código cargado desde ubicaciones remotas, puede utilizar el elemento de configuración <loadFromRemoteSources> .To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • El contexto de solo reflexión contiene ensamblados cargados con los métodos ReflectionOnlyLoad y ReflectionOnlyLoadFrom; no se puede ejecutar el código en estos contextos.The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Si el usuario ha generado o encontrado el ensamblado, no se encuentra en ningún contexto.If the user generated or found the assembly, it is not in any context. Esto se aplica a los ensamblados cargados mediante sobrecargas del método Load que especifican una matriz de bytes que contiene un ensamblado, y a los ensamblados dinámicos transitorios creados con la emisión de la reflexión y no se guardan en el disco.This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

El contexto de carga desde permite cargar un ensamblado desde una ruta de acceso que no está incluida en el sondeo y, además, permite encontrar y cargar las dependencias de esa ruta de acceso porque el contexto mantiene la información de la ruta de acceso.The load-from context allows an assembly to be loaded from a path that is not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

El método LoadFrom tiene las siguientes desventajas.The LoadFrom method has the following disadvantages. Considere usar Load en su lugar.Consider using Load instead.

  • Si hay un ensamblado con la misma identidad ya cargado, LoadFrom devuelve el ensamblado cargado aunque se haya especificado otra ruta de acceso.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Si un ensamblado se carga con LoadFromy, posteriormente, un ensamblado en el contexto de carga intenta cargar el mismo ensamblado por el nombre para mostrar, se produce un error en el intento de carga.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Esto puede ocurrir cuando se deserializa un ensamblado.This can occur when an assembly is deserialized.

  • Si un ensamblado se carga con LoadFrom, y la ruta de acceso de sondeo incluye un ensamblado con la misma identidad pero una ubicación diferente, puede producirse un InvalidCastException, MissingMethodExceptionu otro comportamiento inesperado.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom exige FileIOPermissionAccess.Read y FileIOPermissionAccess.PathDiscovery, o WebPermission, en la ruta de acceso especificada.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Si existe una imagen nativa para assemblyFile, no se utiliza.If a native image exists for assemblyFile, it is not used. No se puede cargar el ensamblado con dominio neutro.The assembly cannot be loaded as domain-neutral.

El ensamblado se carga con la evidencia que proporciona el cargador.The assembly is loaded with the evidence that the loader supplies.

Seguridad

SecurityPermission
para cargar un ensamblado con evidencia.to load an assembly with evidence. Enumeración asociada: ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
para leer un URI que comienza con "file://".for reading a URI that begins with "file://". Enumeración asociada: ReadAssociated enumeration: Read

WebPermission
para leer un URI que no comienza por "file://".for reading a URI that does not begin with "file://".

LoadFrom(String)

Carga un ensamblado a partir del nombre o ruta de acceso del archivo.Loads an assembly given its file name or path.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile);
public static System.Reflection.Assembly LoadFrom (string assemblyFile);
static member LoadFrom : string -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String) As Assembly

Parámetros

assemblyFile
String

Nombre o ruta de acceso del archivo que contiene el manifiesto del ensamblado.The name or path of the file that contains the manifest of the assembly.

Devoluciones

Ensamblado cargado.The loaded assembly.

Excepciones

assemblyFile es null.assemblyFile is null.

No se encuentra assemblyFile o el módulo que está intentando cargar no especifica una extensión de nombre de archivo.assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

No se pudo cargar un archivo que se encontró.A file that was found could not be loaded.

O bien-or-

La capacidad de ejecutar código en los ensamblados remotos está deshabilitada.The ability to execute code in remote assemblies is disabled. Vea <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile no es un ensamblado válido; por ejemplo, un ensamblado de 32 bits en un proceso de 64 bits.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Consulte el tema sobre excepciones para obtener más información.See the exception topic for more information.

O bien-or- La versión 2.0 u otra posterior de 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 especificó un código base que no comienza con "file://" sin el WebPermission necesario.A codebase that does not start with "file://" was specified without the required WebPermission.

El parámetro assemblyFile es una cadena vacía ("").The assemblyFile parameter is an empty string ("").

El nombre del ensamblado supera la longitud máxima definida por el sistema.The assembly name exceeds the system-defined maximum length.

Ejemplos

En el ejemplo siguiente se carga un ensamblado a partir de su nombre de archivo o ruta de acceso.The following example loads an assembly given its file name or path.

Assembly^ SampleAssembly;
SampleAssembly = Assembly::LoadFrom( "c:\\Sample.Assembly.dll" );
// Obtain a reference to a method known to exist in assembly.
MethodInfo^ Method = SampleAssembly->GetTypes()[ 0 ]->GetMethod( "Method1" );
// Obtain a reference to the parameters collection of the MethodInfo instance.
array<ParameterInfo^>^ Params = Method->GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System::String
//   Position = 0
//   Optional=False
for each ( ParameterInfo^ Param in Params )
{
   Console::WriteLine( "Param= {0}", Param->Name );
   Console::WriteLine( "  Type= {0}", Param->ParameterType );
   Console::WriteLine( "  Position= {0}", Param->Position );
   Console::WriteLine( "  Optional= {0}", Param->IsOptional );
}
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
// Obtain a reference to a method known to exist in assembly.
MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
ParameterInfo[] Params = Method.GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System.String
//   Position = 0
//   Optional=False
foreach (ParameterInfo Param in Params)
{
    Console.WriteLine("Param=" + Param.Name.ToString());
    Console.WriteLine("  Type=" + Param.ParameterType.ToString());
    Console.WriteLine("  Position=" + Param.Position.ToString());
    Console.WriteLine("  Optional=" + Param.IsOptional.ToString());
}
Dim SampleAssembly As [Assembly]
SampleAssembly = [Assembly].LoadFrom("c:\Sample.Assembly.dll")
' Obtain a reference to a method known to exist in assembly.
Dim Method As MethodInfo = SampleAssembly.GetTypes()(0).GetMethod("Method1")
' Obtain a reference to the parameters collection of the MethodInfo instance.
Dim Params As ParameterInfo() = Method.GetParameters()
' Display information about method parameters.
' Param = sParam1
'   Type = System.String
'   Position = 0
'   Optional=False
For Each Param As ParameterInfo In Params
    Console.WriteLine(("Param=" + Param.Name.ToString()))
    Console.WriteLine(("  Type=" + Param.ParameterType.ToString()))
    Console.WriteLine(("  Position=" + Param.Position.ToString()))
    Console.WriteLine(("  Optional=" + Param.IsOptional.ToString()))
Next 

Comentarios

El parámetro assemblyFile debe hacer referencia a un URI sin caracteres de escape.The assemblyFile parameter must refer to a URI without escape characters. Este método proporciona caracteres de escape para todos los caracteres no válidos del URI.This method supplies escape characters for all invalid characters in the URI.

Nota

No se admite el protocolo de transferencia de archivos (FTP).File transfer protocol (FTP) is not supported. Si el URI proporcionado para assemblyFile es una dirección FTP, el ensamblado no se carga.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. No se inicia ninguna excepción.No exception is thrown.

assemblyFile puede ser absoluta o relativa al directorio actual, y el ensamblado se carga en el dominio del llamador.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Los ensamblados se pueden cargar en uno de tres contextos o se pueden cargar sin contexto:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • El contexto de carga contiene ensamblados que se encuentran al sondear: en la GAC, en un almacén de ensamblado de host si el tiempo de ejecución está hospedado, o en el ApplicationBase y PrivateBinPath del dominio de aplicación.The load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. La mayoría de las sobrecargas del método Load carga ensamblados en este contexto.Most overloads of the Load method load assemblies into this context.

  • El contexto de carga desde contiene los ensamblados para los que el usuario proporcionó una ruta de acceso no incluida en los directorios buscados mediante sondeo.The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFrom, CreateInstanceFrom y ExecuteAssembly son ejemplos de métodos que cargan por ruta de acceso.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    A partir de .NET Framework 4, si el URI de assemblyFile especifica una ubicación remota, la carga de ensamblados está deshabilitada de forma predeterminada y el método LoadFrom produce una FileLoadException.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Para habilitar la ejecución de código cargado desde ubicaciones remotas, puede utilizar el elemento de configuración <loadFromRemoteSources> .To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • El contexto de solo reflexión contiene ensamblados cargados con los métodos ReflectionOnlyLoad y ReflectionOnlyLoadFrom; no se puede ejecutar el código en estos contextos.The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Si el usuario ha generado o encontrado el ensamblado, no se encuentra en ningún contexto.If the user generated or found the assembly, it is not in any context. Esto se aplica a los ensamblados cargados mediante sobrecargas del método Load que especifican una matriz de bytes que contiene un ensamblado, y a los ensamblados dinámicos transitorios creados con la emisión de la reflexión y no se guardan en el disco.This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

El contexto de carga desde permite cargar un ensamblado desde una ruta de acceso no incluida en el sondeo y, además, permite encontrar y cargar las dependencias de esa ruta de acceso porque el contexto mantiene la información de la ruta de acceso.The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

El método LoadFrom tiene las siguientes desventajas.The LoadFrom method has the following disadvantages. Considere usar Load en su lugar.Consider using Load instead.

  • Si hay un ensamblado con la misma identidad ya cargado, LoadFrom devuelve el ensamblado cargado aunque se haya especificado otra ruta de acceso.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Si un ensamblado se carga con LoadFromy, posteriormente, un ensamblado en el contexto de carga intenta cargar el mismo ensamblado por el nombre para mostrar, se produce un error en el intento de carga.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Esto puede ocurrir cuando se anula la serialización de un ensamblado.This can occur when an assembly is de-serialized.

  • Si un ensamblado se carga con LoadFrom, y la ruta de acceso de sondeo incluye un ensamblado con la misma identidad pero una ubicación diferente, puede producirse un InvalidCastException, MissingMethodExceptionu otro comportamiento inesperado.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom exige FileIOPermissionAccess.Read y FileIOPermissionAccess.PathDiscovery, o WebPermission, en la ruta de acceso especificada.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Si existe una imagen nativa para assemblyFile, no se utiliza.If a native image exists for assemblyFile, it is not used. No se puede cargar el ensamblado como dominio neutro.The assembly cannot be loaded as domain neutral.

  • En la .NET Framework versión 1,0 y 1,1, no se aplica la Directiva.In the .NET Framework version 1.0 and 1.1, policy is not applied.

Seguridad

FileIOPermission
para leer un URI que comienza con "file://".for reading a URI that begins with "file://". Enumeración asociada: ReadAssociated enumeration: Read

WebPermission
para leer un URI que no comienza por "file://".for reading a URI that does not begin with "file://".

LoadFrom(String, Evidence)

Advertencia

Esta API está ya obsoleta.

Carga un ensamblado determinado a partir del nombre o ruta de acceso del archivo, a la vez que proporciona evidencia de seguridad.Loads an assembly given its file name or path and supplying security evidence.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence);
[System.Obsolete]
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence);
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence) As Assembly

Parámetros

assemblyFile
String

Nombre o ruta de acceso del archivo que contiene el manifiesto del ensamblado.The name or path of the file that contains the manifest of the assembly.

securityEvidence
Evidence

Evidencia para cargar el ensamblado.Evidence for loading the assembly.

Devoluciones

Ensamblado cargado.The loaded assembly.

Atributos

Excepciones

assemblyFile es null.assemblyFile is null.

No se encuentra assemblyFile o el módulo que está intentando cargar no especifica una extensión de nombre de archivo.assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

No se pudo cargar un archivo que se encontró.A file that was found could not be loaded.

O bien-or- El elemento securityEvidence no es ambiguo y se determinó que no es válido.The securityEvidence is not ambiguous and is determined to be invalid.

O bien-or-

La capacidad de ejecutar código en los ensamblados remotos está deshabilitada.The ability to execute code in remote assemblies is disabled. Vea <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile no es un ensamblado válido; por ejemplo, un ensamblado de 32 bits en un proceso de 64 bits.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Consulte el tema sobre excepciones para obtener más información.See the exception topic for more information.

O bien-or- La versión 2.0 u otra posterior de 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 especificó un código base que no comienza con "file://" sin el WebPermission necesario.A codebase that does not start with "file://" was specified without the required WebPermission.

El parámetro assemblyFile es una cadena vacía ("").The assemblyFile parameter is an empty string ("").

El nombre del ensamblado supera la longitud máxima definida por el sistema.The assembly name exceeds the system-defined maximum length.

Comentarios

El parámetro assemblyFile debe hacer referencia a un URI sin caracteres de escape.The assemblyFile parameter must refer to a URI without escape characters. Este método proporciona caracteres de escape para todos los caracteres no válidos del URI.This method supplies escape characters for all invalid characters in the URI.

Nota

No se admite el protocolo de transferencia de archivos (FTP).File transfer protocol (FTP) is not supported. Si el URI proporcionado para assemblyFile es una dirección FTP, el ensamblado no se carga.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. No se inicia ninguna excepción.No exception is thrown.

assemblyFile puede ser absoluta o relativa al directorio actual, y el ensamblado se carga en el dominio del llamador.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Los ensamblados se pueden cargar en uno de tres contextos o se pueden cargar sin contexto:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • El contexto de carga contiene ensamblados que se encuentran al sondear: en la GAC, en un almacén de ensamblado de host si el tiempo de ejecución está hospedado, o en el ApplicationBase y PrivateBinPath del dominio de aplicación.The load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. La mayoría de las sobrecargas del método Load carga ensamblados en este contexto.Most overloads of the Load method load assemblies into this context.

  • El contexto de carga desde contiene los ensamblados para los que el usuario proporcionó una ruta de acceso no incluida en los directorios buscados mediante sondeo.The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFrom, CreateInstanceFrom y ExecuteAssembly son ejemplos de métodos que cargan por ruta de acceso.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    A partir de .NET Framework 4, si el URI de assemblyFile especifica una ubicación remota, la carga de ensamblados está deshabilitada de forma predeterminada y el método LoadFrom produce una FileLoadException.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Para habilitar la ejecución de código cargado desde ubicaciones remotas, puede utilizar el elemento de configuración <loadFromRemoteSources> .To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • El contexto de solo reflexión contiene ensamblados cargados con los métodos ReflectionOnlyLoad y ReflectionOnlyLoadFrom; no se puede ejecutar el código en estos contextos.The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Si el usuario ha generado o encontrado el ensamblado, no se encuentra en ningún contexto.If the user generated or found the assembly, it is not in any context. Esto se aplica a los ensamblados cargados mediante sobrecargas del método Load que especifican una matriz de bytes que contiene un ensamblado, y a los ensamblados dinámicos transitorios creados con la emisión de la reflexión y no se guardan en el disco.This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

El contexto de carga desde permite cargar un ensamblado desde una ruta de acceso no incluida en el sondeo y, además, permite encontrar y cargar las dependencias de esa ruta de acceso porque el contexto mantiene la información de la ruta de acceso.The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

El método LoadFrom tiene las siguientes desventajas.The LoadFrom method has the following disadvantages. Considere usar Load en su lugar.Consider using Load instead.

  • Si hay un ensamblado con la misma identidad ya cargado, LoadFrom devuelve el ensamblado cargado aunque se haya especificado otra ruta de acceso.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Si un ensamblado se carga con LoadFromy, posteriormente, un ensamblado en el contexto de carga intenta cargar el mismo ensamblado por el nombre para mostrar, se produce un error en el intento de carga.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Esto puede ocurrir cuando se deserializa un ensamblado.This can occur when an assembly is deserialized.

  • Si un ensamblado se carga con LoadFrom, y la ruta de acceso de sondeo incluye un ensamblado con la misma identidad pero una ubicación diferente, puede producirse un InvalidCastException, MissingMethodExceptionu otro comportamiento inesperado.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom exige FileIOPermissionAccess.Read y FileIOPermissionAccess.PathDiscovery, o WebPermission, en la ruta de acceso especificada.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Si existe una imagen nativa para assemblyFile, no se utiliza.If a native image exists for assemblyFile, it is not used. No se puede cargar el ensamblado como dominio neutro.The assembly cannot be loaded as domain neutral.

  • En la .NET Framework versión 1,0 y 1,1, no se aplica la Directiva.In the .NET Framework version 1.0 and 1.1, policy is not applied.

La concesión de permisos específicos para un ensamblado se basa en la evidencia.Whether certain permissions are granted or not granted to an assembly is based on evidence. Las reglas de combinación de evidencia de ensamblado y seguridad son las siguientes:The rules for assembly and security evidence merging are as follows:

  • Cuando se usa un método LoadFrom sin ningún parámetro Evidence, el ensamblado se carga con la evidencia que proporciona el cargador.When you use a LoadFrom method with no Evidence parameter, the assembly is loaded with the evidence that the loader supplies.

  • Cuando se usa un método LoadFrom con un parámetro Evidence, se combinan los elementos de evidencia.When you use a LoadFrom method with an Evidence parameter, pieces of evidence are merged. Los elementos de evidencia que se proporcionan como argumento al método LoadFrom reemplazan a los elementos de evidencia proporcionados por el cargador.Pieces of evidence supplied as an argument to the LoadFrom method supersede pieces of evidence supplied by the loader.

  • Si llama a este método más de una vez en el mismo ensamblado pero con una evidencia diferente especificada, el Common Language Runtime no inicia una FileLoadException porque no se puede determinar la igualdad y la integridad de las distintas especificaciones de evidencia.If you call this method more than once on the same assembly but with a different evidence specified, the common language runtime does not throw a FileLoadException because the equality and integrity of the different evidence specifications cannot be determined. La evidencia que primero se realiza correctamente es la evidencia que se utiliza.The evidence that first succeeds is the evidence that is used.

  • Cuando se usa un método LoadFrom con un parámetro Byte[] para cargar una imagen de formato de archivo de objeto común (COFF), se combina la evidencia.When you use a LoadFrom method with a Byte[] parameter to load a common object file format (COFF) image, evidence is combined. Zone, Url y Site se heredan del ensamblado que realiza la llamada y Hash y StrongName se toman del ensamblado COFF.Zone, Url and Site are inherited from the calling assembly, and Hash and StrongName are taken from the COFF assembly.

  • Cuando se usa un método LoadFrom con un parámetro Byte[] y Evidence para cargar una imagen COFF, solo se utiliza la evidencia proporcionada.When you use a LoadFrom method with a Byte[] parameter and Evidence to load a COFF image, only the supplied evidence is used. Se omite la evidencia del ensamblado que realiza la llamada y la evidencia de la imagen COFF.Evidence of the calling assembly and evidence of the COFF image is ignored.

Seguridad

SecurityPermission
para cargar un ensamblado con evidencia.to load an assembly with evidence. Enumeración asociada: ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
para leer un URI que comienza con "file://".for reading a URI that begins with "file://". Enumeración asociada: ReadAssociated enumeration: Read

WebPermission
para leer un URI que no comienza por "file://".for reading a URI that does not begin with "file://".

Consulte también:

Se aplica a