Assembly.LoadFrom Método

Definición

Carga un ensamblado.

Sobrecargas

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

Carga un ensamblado a partir de su nombre o ruta de acceso de archivo, evidencia de seguridad, valor hash y algoritmo hash.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Carga un ensamblado a partir de su nombre o ruta de acceso de archivo, valor hash y algoritmo hash.

LoadFrom(String)

Carga un ensamblado a partir del nombre o ruta de acceso del archivo.

LoadFrom(String, Evidence)
Obsoletos.

Carga un ensamblado determinado a partir del nombre o ruta de acceso del archivo, a la vez que proporciona evidencia de seguridad.

Comentarios

A partir de .NET Framework 4, la capacidad de ejecutar código en ensamblados cargados desde ubicaciones remotas está deshabilitada de forma predeterminada y la llamada al LoadFrom método produce una FileLoadExceptionexcepción . Para cargar el ensamblado y ejecutar su código, debe:

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

Precaución

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 http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Carga un ensamblado a partir de su nombre o ruta de acceso de archivo, evidencia de seguridad, valor hash y algoritmo hash.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[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 http://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
[<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 http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
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.

securityEvidence
Evidence

Evidencia para cargar el ensamblado.

hashValue
Byte[]

Valor del código hash calculado.

hashAlgorithm
AssemblyHashAlgorithm

Algoritmo hash utilizado para los archivos hash y para generar el nombre seguro.

Devoluciones

Ensamblado cargado.

Atributos

Excepciones

assemblyFile es null.

No se encuentra assemblyFile o el módulo que está intentando cargar no especifica una extensión de nombre de archivo.

No se pudo cargar un archivo que se encontró.

o bien

El elemento securityEvidence no es ambiguo y se determinó que no es válido.

o bien

La capacidad de ejecutar código en los ensamblados remotos está deshabilitada. Vea <loadFromRemoteSources>.

assemblyFile no es un ensamblado válido para el tiempo de ejecución cargado actualmente; por ejemplo, un ensamblado de 32 bits en un proceso de 64 bits.

Se especificó un código base que no comienza con "file://" sin el WebPermission necesario.

El parámetro assemblyFile es una cadena vacía ("").

El nombre del ensamblado supera la longitud máxima definida por el sistema.

Comentarios

El assemblyFile parámetro debe hacer referencia a un URI sin caracteres de escape. Este método proporciona caracteres de escape para todos los caracteres no válidos del URI.

Nota

No se admite el protocolo de transferencia de archivos (FTP). Si el URI proporcionado para assemblyFile es una dirección FTP, el ensamblado no se carga. No se inicia ninguna excepción.

assemblyFile puede ser absoluto o relativo al directorio actual.

Los ensamblados se pueden cargar en uno de los tres contextos o se pueden cargar sin contexto:

  • El contexto de carga contiene ensamblados encontrados mediante sondeos: en la GAC, en un almacén de ensamblados host si el tiempo de ejecución está hospedado o en y ApplicationBasePrivateBinPath del dominio de aplicación. La mayoría de las sobrecargas del método Load carga ensamblados en este contexto.

  • El contexto load-from contiene ensamblados para los que el usuario proporcionó una ruta de acceso no incluida en los directorios buscados por sondeo. LoadFrom, CreateInstanceFrom y ExecuteAssembly son ejemplos de métodos que cargan por ruta de acceso.

    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 LoadFrom método inicia un FileLoadException. Para habilitar la ejecución de código cargado desde ubicaciones remotas, puede usar el <loadFromRemoteSources> elemento de configuración .

  • El contexto de solo reflexión contiene ensamblados cargados con los ReflectionOnlyLoad métodos y ReflectionOnlyLoadFrom ; no se puede ejecutar código en estos contextos.

  • Si el usuario generó o encontró el ensamblado, no está en ningún contexto. Esto se aplica a los ensamblados cargados mediante sobrecargas del Load método que especifican una matriz de bytes que contiene un ensamblado y a ensamblados dinámicos transitorios creados con emisión de reflexión y no guardados en el disco.

El contexto load-from permite cargar un ensamblado desde una ruta de acceso no incluida en el sondeo y, sin embargo, permite que las dependencias de esa ruta de acceso se encuentren y carguen porque el contexto mantiene la información de la ruta de acceso.

El LoadFrom método tiene las siguientes desventajas. Considere usar Load en su lugar.

  • Si hay un ensamblado con la misma identidad ya cargado, LoadFrom devuelve el ensamblado cargado aunque se haya especificado otra ruta de acceso.

  • Si un ensamblado se carga con LoadFromy, más adelante, un ensamblado en el contexto de carga intenta cargar el mismo ensamblado por nombre para mostrar, se produce un error en el intento de carga. Esto puede ocurrir cuando se deserializa un ensamblado.

  • Si un ensamblado se carga con LoadFromy la ruta de acceso de sondeo incluye un ensamblado con la misma identidad, pero se puede producir una ubicación diferente, un InvalidCastExceptionMissingMethodException, u otro comportamiento inesperado.

  • LoadFrom exige FileIOPermissionAccess.Read y FileIOPermissionAccess.PathDiscovery, o WebPermission, en la ruta de acceso especificada.

  • Si existe una imagen nativa para assemblyFile, no se usa. El ensamblado no se puede cargar como neutral del dominio.

La concesión de permisos específicos para un ensamblado se basa en la evidencia. Las reglas para la combinación de evidencias de seguridad y ensamblado son las siguientes:

  • Cuando se usa un LoadFrom método sin Evidence parámetro, el ensamblado se carga con la evidencia de que el cargador proporciona.

  • Cuando se usa un método con un LoadFromEvidence parámetro, se combinan fragmentos de evidencia. Las pruebas proporcionadas como argumento para el LoadFrom método sustituyen a partes de evidencia proporcionadas por el cargador.

  • Si llama a este método más de una vez en el mismo ensamblado, pero con una evidencia diferente especificada, Common Language Runtime no inicia porque FileLoadException no se puede determinar la igualdad e integridad de las distintas especificaciones de evidencia. La evidencia que primero se realiza correctamente es la evidencia que se usa.

  • Cuando se usa un LoadFrom método con un Byte[] parámetro para cargar una imagen de formato de archivo de objeto común (COFF), la evidencia se combina. Zone, Url y Site se heredan del ensamblado que realiza la llamada y Hash se StrongName toman del ensamblado COFF.

  • Cuando se usa un método con un LoadFromByte[] parámetro y Evidence para cargar una imagen COFF, solo se usa la evidencia proporcionada. Se omiten las evidencias del ensamblado que realiza la llamada y de la evidencia de la imagen COFF.

Se aplica a

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Source:
Assembly.cs
Source:
Assembly.cs
Source:
Assembly.cs

Carga un ensamblado a partir de su nombre o ruta de acceso de archivo, valor hash y algoritmo hash.

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);
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.

hashValue
Byte[]

Valor del código hash calculado.

hashAlgorithm
AssemblyHashAlgorithm

Algoritmo hash utilizado para los archivos hash y para generar el nombre seguro.

Devoluciones

Ensamblado cargado.

Excepciones

assemblyFile es null.

No se encuentra assemblyFile o el módulo que está intentando cargar no especifica una extensión de nombre de archivo.

No se pudo cargar un archivo que se encontró.

o bien

La capacidad de ejecutar código en los ensamblados remotos está deshabilitada. Vea <loadFromRemoteSources>.

assemblyFile no es un ensamblado válido para el tiempo de ejecución cargado actualmente; por ejemplo, un ensamblado de 32 bits en un proceso de 64 bits.

Se especificó un código base que no comienza con "file://" sin el WebPermission necesario.

El parámetro assemblyFile es una cadena vacía ("").

El nombre del ensamblado supera la longitud máxima definida por el sistema.

Comentarios

El assemblyFile parámetro debe hacer referencia a un URI sin caracteres de escape. Este método proporciona caracteres de escape para todos los caracteres no válidos del URI.

Nota

No se admite el protocolo de transferencia de archivos (FTP). Si el URI proporcionado para assemblyFile es una dirección FTP, el ensamblado no se carga. No se inicia ninguna excepción.

assemblyFile puede ser absoluto o relativo al directorio actual.

Los ensamblados se pueden cargar en uno de los tres contextos o se pueden cargar sin contexto:

  • El contexto de carga contiene ensamblados encontrados por sondeo: en la caché global de ensamblados, en un almacén de ensamblados host si el tiempo de ejecución está hospedado o en y ApplicationBasePrivateBinPath del dominio de aplicación. La mayoría de las sobrecargas del método Load carga ensamblados en este contexto.

  • El contexto load-from contiene ensamblados para los que el usuario proporcionó una ruta de acceso que no está incluida en el sondeo. LoadFrom, CreateInstanceFrom y ExecuteAssembly son ejemplos de métodos que cargan por ruta de acceso.

    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 LoadFrom método inicia un FileLoadException. Para habilitar la ejecución de código cargado desde ubicaciones remotas, puede usar el <loadFromRemoteSources> elemento de configuración .

  • El contexto de solo reflexión contiene ensamblados cargados con los ReflectionOnlyLoad métodos y ReflectionOnlyLoadFrom ; no se puede ejecutar código en estos contextos.

  • Si el usuario generó o encontró el ensamblado, no está en ningún contexto. Esto se aplica a los ensamblados cargados mediante sobrecargas del Load método que especifican una matriz de bytes que contiene un ensamblado y a ensamblados dinámicos transitorios creados con emisión de reflexión y no guardados en el disco.

El contexto load-from permite cargar un ensamblado desde una ruta de acceso que no está incluida en el sondeo y, sin embargo, permite que se encuentren y carguen dependencias en esa ruta de acceso porque el contexto mantiene la información de ruta de acceso.

El LoadFrom método tiene las siguientes desventajas. Considere usar Load en su lugar.

  • Si hay un ensamblado con la misma identidad ya cargado, LoadFrom devuelve el ensamblado cargado aunque se haya especificado otra ruta de acceso.

  • Si un ensamblado se carga con LoadFromy, más adelante, un ensamblado en el contexto de carga intenta cargar el mismo ensamblado por nombre para mostrar, se produce un error en el intento de carga. Esto puede ocurrir cuando se deserializa un ensamblado.

  • Si un ensamblado se carga con LoadFromy la ruta de acceso de sondeo incluye un ensamblado con la misma identidad, pero se puede producir una ubicación diferente, un InvalidCastExceptionMissingMethodException, u otro comportamiento inesperado.

  • LoadFrom exige FileIOPermissionAccess.Read y FileIOPermissionAccess.PathDiscovery, o WebPermission, en la ruta de acceso especificada.

  • Si existe una imagen nativa para assemblyFile, no se usa. No se puede cargar el ensamblado con dominio neutro.

El ensamblado se carga con la evidencia de que el cargador proporciona.

Se aplica a

LoadFrom(String)

Source:
Assembly.cs
Source:
Assembly.cs
Source:
Assembly.cs

Carga un ensamblado a partir del nombre o ruta de acceso del archivo.

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.

Devoluciones

Ensamblado cargado.

Excepciones

assemblyFile es null.

No se encuentra assemblyFile o el módulo que está intentando cargar no especifica una extensión de nombre de archivo.

No se pudo cargar un archivo que se encontró.

o bien

La capacidad de ejecutar código en los ensamblados remotos está deshabilitada. Vea <loadFromRemoteSources>.

assemblyFile no es un ensamblado válido para el tiempo de ejecución cargado actualmente; por ejemplo, un ensamblado de 32 bits en un proceso de 64 bits.

Se especificó un código base que no comienza con "file://" sin el WebPermission necesario.

El parámetro assemblyFile es una cadena vacía ("").

El nombre del ensamblado supera la longitud máxima definida por el sistema.

Ejemplos

En el ejemplo siguiente se carga un ensamblado según su nombre de archivo o ruta de acceso.

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 assemblyFile parámetro debe hacer referencia a un URI sin caracteres de escape. Este método proporciona caracteres de escape para todos los caracteres no válidos del URI.

Nota

No se admite el protocolo de transferencia de archivos (FTP). Si el URI proporcionado para assemblyFile es una dirección FTP, el ensamblado no se carga. No se inicia ninguna excepción.

assemblyFile puede ser absoluto o relativo al directorio actual.

Los ensamblados se pueden cargar en uno de los tres contextos o se pueden cargar sin contexto:

  • El contexto de carga contiene ensamblados encontrados mediante sondeos: en la GAC, en un almacén de ensamblados host si el tiempo de ejecución está hospedado o en y ApplicationBasePrivateBinPath del dominio de aplicación. La mayoría de las sobrecargas del método Load carga ensamblados en este contexto.

  • El contexto load-from contiene ensamblados para los que el usuario proporcionó una ruta de acceso no incluida en los directorios buscados por sondeo. LoadFrom, CreateInstanceFrom y ExecuteAssembly son ejemplos de métodos que cargan por ruta de acceso.

    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 LoadFrom método inicia un FileLoadException. Para habilitar la ejecución de código cargado desde ubicaciones remotas, puede usar el <loadFromRemoteSources> elemento de configuración .

  • El contexto de solo reflexión contiene ensamblados cargados con los ReflectionOnlyLoad métodos y ReflectionOnlyLoadFrom ; no se puede ejecutar código en estos contextos.

  • Si el usuario generó o encontró el ensamblado, no está en ningún contexto. Esto se aplica a los ensamblados cargados mediante sobrecargas del Load método que especifican una matriz de bytes que contiene un ensamblado y a ensamblados dinámicos transitorios creados con emisión de reflexión y no guardados en el disco.

El contexto load-from permite cargar un ensamblado desde una ruta de acceso no incluida en el sondeo y, sin embargo, permite que las dependencias de esa ruta de acceso se encuentren y carguen porque el contexto mantiene la información de la ruta de acceso.

El LoadFrom método tiene las siguientes desventajas. Considere usar Load en su lugar.

  • Si hay un ensamblado con la misma identidad ya cargado en el contexto de origen de carga, LoadFrom devuelve el ensamblado cargado aunque se haya especificado otra ruta de acceso.

  • Un ensamblado se puede cargar en el contexto load-from aunque existe un ensamblado con la misma identidad en el contexto de carga. La interoperabilidad entre los dos ensamblados no funcionará, lo que provoca errores como InvalidCastException, MissingMethodExceptionu otro comportamiento inesperado.

  • La llamada a LoadFrom con una ubicación que se encuentra en la ruta de acceso de sondeo cargará el ensamblado en el contexto de carga y no en el contexto de carga desde.

  • Si se pasa una directiva de redirección de enlace a un archivo de ensamblado cuya identidad está contraida por una directiva de redireccionamiento de enlace, LoadFromla directiva se aplicará y el ensamblado se cargará desde la ruta de acceso de sondeo en el contexto de carga.

  • Si un ensamblado se carga en el contexto load-from y, posteriormente, un ensamblado en el contexto de carga intenta cargar el mismo ensamblado por nombre para mostrar, se produce un error en el intento de carga. Esto puede ocurrir cuando se deserializa un ensamblado.

  • LoadFrom exige FileIOPermissionAccess.Read y FileIOPermissionAccess.PathDiscovery, o WebPermission, en la ruta de acceso especificada.

  • Si existe una imagen nativa para assemblyFile, no se usa. El ensamblado no se puede cargar como neutral del dominio.

Se aplica a

LoadFrom(String, Evidence)

Precaución

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 http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Carga un ensamblado determinado a partir del nombre o ruta de acceso del archivo, a la vez que proporciona evidencia de seguridad.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence);
[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 http://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
[<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 http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
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.

securityEvidence
Evidence

Evidencia para cargar el ensamblado.

Devoluciones

Ensamblado cargado.

Atributos

Excepciones

assemblyFile es null.

No se encuentra assemblyFile o el módulo que está intentando cargar no especifica una extensión de nombre de archivo.

No se pudo cargar un archivo que se encontró.

o bien

El elemento securityEvidence no es ambiguo y se determinó que no es válido.

o bien

La capacidad de ejecutar código en los ensamblados remotos está deshabilitada. Vea <loadFromRemoteSources>.

assemblyFile no es un ensamblado válido para el tiempo de ejecución cargado actualmente; por ejemplo, un ensamblado de 32 bits en un proceso de 64 bits.

Se especificó un código base que no comienza con "file://" sin el WebPermission necesario.

El parámetro assemblyFile es una cadena vacía ("").

El nombre del ensamblado supera la longitud máxima definida por el sistema.

Comentarios

El assemblyFile parámetro debe hacer referencia a un URI sin caracteres de escape. Este método proporciona caracteres de escape para todos los caracteres no válidos del URI.

Nota

No se admite el protocolo de transferencia de archivos (FTP). Si el URI proporcionado para assemblyFile es una dirección FTP, el ensamblado no se carga. No se inicia ninguna excepción.

assemblyFile puede ser absoluto o relativo al directorio actual.

Los ensamblados se pueden cargar en uno de los tres contextos o se pueden cargar sin contexto:

  • El contexto de carga contiene ensamblados encontrados mediante sondeos: en la GAC, en un almacén de ensamblados host si el tiempo de ejecución está hospedado o en y ApplicationBasePrivateBinPath del dominio de aplicación. La mayoría de las sobrecargas del método Load carga ensamblados en este contexto.

  • El contexto load-from contiene ensamblados para los que el usuario proporcionó una ruta de acceso no incluida en los directorios buscados por sondeo. LoadFrom, CreateInstanceFrom y ExecuteAssembly son ejemplos de métodos que cargan por ruta de acceso.

    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 LoadFrom método inicia un FileLoadException. Para habilitar la ejecución de código cargado desde ubicaciones remotas, puede usar el <loadFromRemoteSources> elemento de configuración .

  • El contexto de solo reflexión contiene ensamblados cargados con los ReflectionOnlyLoad métodos y ReflectionOnlyLoadFrom ; no se puede ejecutar código en estos contextos.

  • Si el usuario generó o encontró el ensamblado, no está en ningún contexto. Esto se aplica a los ensamblados cargados mediante sobrecargas del Load método que especifican una matriz de bytes que contiene un ensamblado y a ensamblados dinámicos transitorios creados con emisión de reflexión y no guardados en el disco.

El contexto load-from permite cargar un ensamblado desde una ruta de acceso no incluida en el sondeo y, sin embargo, permite que las dependencias de esa ruta de acceso se encuentren y carguen porque el contexto mantiene la información de la ruta de acceso.

El LoadFrom método tiene las siguientes desventajas. Considere usar Load en su lugar.

  • Si hay un ensamblado con la misma identidad ya cargado, LoadFrom devuelve el ensamblado cargado aunque se haya especificado otra ruta de acceso.

  • Si un ensamblado se carga con LoadFromy, más adelante, un ensamblado en el contexto de carga intenta cargar el mismo ensamblado por nombre para mostrar, se produce un error en el intento de carga. Esto puede ocurrir cuando se deserializa un ensamblado.

  • Si un ensamblado se carga con LoadFromy la ruta de acceso de sondeo incluye un ensamblado con la misma identidad, pero se puede producir una ubicación diferente, un InvalidCastExceptionMissingMethodException, u otro comportamiento inesperado.

  • LoadFrom exige FileIOPermissionAccess.Read y FileIOPermissionAccess.PathDiscovery, o WebPermission, en la ruta de acceso especificada.

  • Si existe una imagen nativa para assemblyFile, no se usa. El ensamblado no se puede cargar como neutral del dominio.

La concesión de permisos específicos para un ensamblado se basa en la evidencia. Las reglas para la combinación de evidencias de seguridad y ensamblado son las siguientes:

  • Cuando se usa un LoadFrom método sin Evidence parámetro, el ensamblado se carga con la evidencia de que el cargador proporciona.

  • Cuando se usa un método con un LoadFromEvidence parámetro, se combinan fragmentos de evidencia. Las pruebas proporcionadas como argumento para el LoadFrom método sustituyen a las pruebas proporcionadas por el cargador.

  • Si llama a este método más de una vez en el mismo ensamblado pero con una evidencia diferente especificada, Common Language Runtime no inicia porque FileLoadException no se puede determinar la igualdad y la integridad de las distintas especificaciones de evidencia. La evidencia que primero se realiza correctamente es la evidencia que se usa.

  • Cuando se usa un LoadFrom método con un Byte[] parámetro para cargar una imagen de formato de archivo de objeto común (COFF), la evidencia se combina. Zone, Url y Site se heredan del ensamblado que realiza la llamada y StrongNameHash se toman del ensamblado COFF.

  • Cuando se usa un LoadFrom método con un Byte[] parámetro y Evidence para cargar una imagen COFF, solo se usa la evidencia proporcionada. Se omite la evidencia del ensamblado que realiza la llamada y de la evidencia de la imagen COFF.

Consulte también

Se aplica a