Assembly.LoadFrom Metodo

Definizione

Carica un assembly.

Overload

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

Carica un assembly in base al nome file o al percorso, all'evidenza di sicurezza, al valore hash e all'algoritmo hash.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Carica un assembly in base al nome file o al percorso, al valore hash e all'algoritmo hash.

LoadFrom(String)

Carica un assembly in base al nome file o al percorso.

LoadFrom(String, Evidence)
Obsoleti.

Carica un assembly in base al nome file o al percorso e fornendo l'evidenza di sicurezza.

Commenti

A partire da .NET Framework 4, la possibilità di eseguire codice negli assembly caricati da percorsi remoti è disabilitata per impostazione predefinita e la LoadFrom chiamata al metodo genera un'eccezione FileLoadException. Per caricare l'assembly ed eseguirne il codice, è necessario:

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

Attenzione

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.

Carica un assembly in base al nome file o al percorso, all'evidenza di sicurezza, al valore hash e all'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

Parametri

assemblyFile
String

Nome o percorso del file che contiene il manifesto dell'assembly.

securityEvidence
Evidence

Evidenza per il caricamento dell'assembly.

hashValue
Byte[]

Valore del codice hash calcolato.

hashAlgorithm
AssemblyHashAlgorithm

Algoritmo hash usato per generare un hash per i file e generare il nome sicuro.

Restituisce

Assembly caricato.

Attributi

Eccezioni

assemblyFile è null.

L'oggetto assemblyFile non è stato trovato oppure il modulo che si sta provando a caricare non specifica un'estensione di file.

Non è stato possibile caricare un file trovato.

-oppure-

L'oggetto securityEvidence non è ambiguo ed è risultato non valido.

-oppure-

La possibilità di eseguire codice negli assembly remoto è disabilitata. Vedere <loadFromRemoteSources>.

assemblyFile non è un assembly valido per il runtime attualmente caricato; ad esempio, un assembly a 32 bit in un processo a 64 bit.

È stata specificata una codebase che non inizia con "file://" senza l'oggetto WebPermission richiesto.

Il parametro assemblyFile è una stringa vuota ("").

Il nome dell'assembly supera la lunghezza massima definita dal sistema.

Commenti

Il assemblyFile parametro deve fare riferimento a un URI senza caratteri di escape. Questo metodo fornisce caratteri di escape per tutti i caratteri non validi nell'URI.

Nota

Il protocollo FTP (File Transfer Protocol) non è supportato. Se l'URI fornito per assemblyFile è un indirizzo FTP, l'assembly non viene caricato. Non viene generata alcuna eccezione.

assemblyFile può essere assoluto o relativo alla directory corrente.

Gli assembly possono essere caricati in uno dei tre contesti oppure possono essere caricati senza contesto:

  • Il contesto di carico contiene assembly trovati tramite il test: nella gaC, in un archivio assembly host se il runtime è ospitato o nel ApplicationBase dominio e PrivateBinPath dell'applicazione. La maggior parte degli overload del metodo Load carica gli assembly in questo contesto.

  • Il carico dal contesto contiene assembly per i quali l'utente ha fornito un percorso non incluso nelle directory di cui è stato eseguito il test. LoadFrom, CreateInstanceFrom e ExecuteAssembly sono esempi di metodi che vengono caricati in base al percorso.

    A partire da .NET Framework 4, se l'URI di assemblyFile specifica una posizione remota, il caricamento dell'assembly è disabilitato per impostazione predefinita e il LoadFrom metodo genera un FileLoadExceptionoggetto . Per abilitare l'esecuzione del codice caricato da posizioni remote, è possibile usare l'elemento <loadFromRemoteSources> di configurazione.

  • Il contesto di solo reflection contiene assembly caricati con i ReflectionOnlyLoad metodi e ReflectionOnlyLoadFrom . Il codice in questi contesti non può essere eseguito.

  • Se l'utente ha generato o trovato l'assembly, non è in alcun contesto. Ciò si applica agli assembly caricati usando overload del metodo che specificano una matrice di byte contenente un assembly e agli assembly dinamici temporanei creati con l'emissione Load di reflection e non vengono salvati su disco.

Il carico dal contesto consente al caricamento di un assembly da un percorso non incluso nel test e consente tuttavia di trovare e caricare le dipendenze su tale percorso perché le informazioni sul percorso vengono mantenute dal contesto.

Il LoadFrom metodo presenta gli svantaggi seguenti. In alternativa, considerare l'utilizzo di Load.

  • Se è già caricato un assembly con la stessa identità LoadFrom restituisce l'assembly caricato anche se è stato specificato un percorso diverso.

  • Se un assembly viene caricato con LoadFrome un assembly successivo nel contesto di carico tenta di caricare lo stesso assembly in base al nome visualizzato, il tentativo di caricamento ha esito negativo. Questa situazione può verificarsi quando un assembly è deserializzato.

  • Se un assembly viene caricato con LoadFrome il percorso di verifica include un assembly con la stessa identità, ma una posizione diversa, un InvalidCastExceptioncomportamento , MissingMethodExceptiono altro comportamento imprevisto può verificarsi.

  • LoadFrom richiede FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery o WebPermission per il percorso specificato.

  • Se esiste un'immagine nativa per assemblyFile, non viene usata. Impossibile caricare l'assembly come neutrale del dominio.

Se sussistano o meno le autorizzazioni per l'utilizzo di un assembly lo si evince dalle evidenze. Le regole per l'unione delle prove di sicurezza e assembly sono le seguenti:

  • Quando si usa un LoadFrom metodo senza Evidence parametro, l'assembly viene caricato con l'evidenza fornita dal caricatore.

  • Quando si usa un metodo con un LoadFromEvidence parametro, vengono unite parti di evidenza. Parti di prove fornite come argomento al LoadFrom metodo sosede parti di prove fornite dal caricatore.

  • Se si chiama questo metodo più di una volta nello stesso assembly, ma con un'evidenza diversa specificata, Common Language Runtime non genera un FileLoadException perché non è possibile determinare l'uguaglianza e l'integrità delle diverse specifiche di evidenza. L'evidenza che ha esito positivo è l'evidenza usata.

  • Quando si usa un metodo con un LoadFromByte[] parametro per caricare un'immagine COFF (Common Object File Format), l'evidenza viene combinata. Zonee UrlSite vengono ereditati dall'assembly chiamante e HashStrongName vengono acquisiti dall'assembly COFF.

  • Quando si usa un metodo con un Byte[] parametro e Evidence per caricare un'immagine LoadFrom COFF, viene usata solo l'evidenza fornita. Le prove dell'assembly chiamante e delle prove dell'immagine COFF vengono ignorate.

Si applica a

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Carica un assembly in base al nome file o al percorso, al valore hash e all'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

Parametri

assemblyFile
String

Nome o percorso del file che contiene il manifesto dell'assembly.

hashValue
Byte[]

Valore del codice hash calcolato.

hashAlgorithm
AssemblyHashAlgorithm

Algoritmo hash usato per generare un hash per i file e generare il nome sicuro.

Restituisce

Assembly caricato.

Eccezioni

assemblyFile è null.

assemblyFile non è stato trovato oppure il modulo che si sta provando a caricare non specifica un'estensione di file.

Non è stato possibile caricare un file trovato.

-oppure-

La possibilità di eseguire codice negli assembly remoto è disabilitata. Vedere <loadFromRemoteSources>.

assemblyFile non è un assembly valido per il runtime attualmente caricato; ad esempio, un assembly a 32 bit in un processo a 64 bit.

È stata specificata una codebase che non inizia con "file://" senza l'oggetto WebPermission richiesto.

Il parametro assemblyFile è una stringa vuota ("").

Il nome dell'assembly supera la lunghezza massima definita dal sistema.

Commenti

Il assemblyFile parametro deve fare riferimento a un URI senza caratteri di escape. Questo metodo fornisce caratteri di escape per tutti i caratteri non validi nell'URI.

Nota

Il protocollo FTP (File Transfer Protocol) non è supportato. Se l'URI fornito per assemblyFile è un indirizzo FTP, l'assembly non viene caricato. Non viene generata alcuna eccezione.

assemblyFile può essere assoluto o relativo alla directory corrente.

Gli assembly possono essere caricati in uno dei tre contesti oppure possono essere caricati senza contesto:

  • Il contesto di carico contiene assembly trovati tramite il test: nella global assembly cache, in un archivio assembly host se il runtime è ospitato o nel ApplicationBase dominio e PrivateBinPath dell'applicazione. La maggior parte degli overload del metodo Load carica gli assembly in questo contesto.

  • Il carico dal contesto contiene assembly per i quali l'utente ha fornito un percorso non incluso nel test. LoadFrom, CreateInstanceFrom e ExecuteAssembly sono esempi di metodi che vengono caricati in base al percorso.

    A partire da .NET Framework 4, se l'URI di assemblyFile specifica una posizione remota, il caricamento dell'assembly è disabilitato per impostazione predefinita e il LoadFrom metodo genera un FileLoadExceptionoggetto . Per abilitare l'esecuzione del codice caricato da posizioni remote, è possibile usare l'elemento <loadFromRemoteSources> di configurazione.

  • Il contesto di solo reflection contiene assembly caricati con i ReflectionOnlyLoad metodi e ReflectionOnlyLoadFrom . Il codice in questi contesti non può essere eseguito.

  • Se l'utente ha generato o trovato l'assembly, non è in alcun contesto. Ciò si applica agli assembly caricati usando overload del metodo che specificano una matrice di byte contenente un assembly e agli assembly dinamici temporanei creati con l'emissione Load di reflection e non vengono salvati su disco.

Il carico dal contesto consente al caricamento di un assembly da un percorso non incluso nel test e consente tuttavia di trovare e caricare le dipendenze su tale percorso perché le informazioni sul percorso vengono mantenute dal contesto.

Il LoadFrom metodo presenta gli svantaggi seguenti. In alternativa, considerare l'utilizzo di Load.

  • Se è già caricato un assembly con la stessa identità LoadFrom restituisce l'assembly caricato anche se è stato specificato un percorso diverso.

  • Se un assembly viene caricato con LoadFrome un assembly successivo nel contesto di carico tenta di caricare lo stesso assembly in base al nome visualizzato, il tentativo di caricamento ha esito negativo. Questa situazione può verificarsi quando un assembly è deserializzato.

  • Se un assembly viene caricato con LoadFrome il percorso di verifica include un assembly con la stessa identità, ma una posizione diversa, un InvalidCastExceptioncomportamento , MissingMethodExceptiono altro comportamento imprevisto può verificarsi.

  • LoadFrom richiede FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery o WebPermission per il percorso specificato.

  • Se esiste un'immagine nativa per assemblyFile, non viene usata. L'assembly non può essere caricato come modulo indipendente dal dominio.

L'assembly viene caricato con l'evidenza che il caricatore fornisce.

Si applica a

LoadFrom(String)

Carica un assembly in base al nome file o al percorso.

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

Parametri

assemblyFile
String

Nome o percorso del file che contiene il manifesto dell'assembly.

Restituisce

Assembly caricato.

Eccezioni

assemblyFile è null.

L'oggetto assemblyFile non è stato trovato oppure il modulo che si sta provando a caricare non specifica un'estensione di file.

Non è stato possibile caricare un file trovato.

-oppure-

La possibilità di eseguire codice negli assembly remoto è disabilitata. Vedere <loadFromRemoteSources>.

assemblyFile non è un assembly valido per il runtime attualmente caricato; ad esempio, un assembly a 32 bit in un processo a 64 bit.

È stata specificata una codebase che non inizia con "file://" senza l'oggetto WebPermission richiesto.

Il parametro assemblyFile è una stringa vuota ("").

Il nome dell'assembly supera la lunghezza massima definita dal sistema.

Esempio

Nell'esempio seguente viene caricato un assembly con il nome o il percorso del file.

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

Commenti

Il assemblyFile parametro deve fare riferimento a un URI senza caratteri di escape. Questo metodo fornisce caratteri di escape per tutti i caratteri non validi nell'URI.

Nota

Il protocollo FTP (File Transfer Protocol) non è supportato. Se l'URI fornito per assemblyFile è un indirizzo FTP, l'assembly non viene caricato. Non viene generata alcuna eccezione.

assemblyFile può essere assoluto o relativo alla directory corrente.

Gli assembly possono essere caricati in uno dei tre contesti oppure possono essere caricati senza contesto:

  • Il contesto di carico contiene assembly trovati tramite il test: nella gaC, in un archivio assembly host se il runtime è ospitato o nel ApplicationBase dominio e PrivateBinPath dell'applicazione. La maggior parte degli overload del metodo Load carica gli assembly in questo contesto.

  • Il carico dal contesto contiene assembly per i quali l'utente ha fornito un percorso non incluso nelle directory di cui è stato eseguito il test. LoadFrom, CreateInstanceFrom e ExecuteAssembly sono esempi di metodi che vengono caricati in base al percorso.

    A partire da .NET Framework 4, se l'URI di assemblyFile specifica una posizione remota, il caricamento dell'assembly è disabilitato per impostazione predefinita e il LoadFrom metodo genera un FileLoadExceptionoggetto . Per abilitare l'esecuzione del codice caricato da posizioni remote, è possibile usare l'elemento <loadFromRemoteSources> di configurazione.

  • Il contesto di solo reflection contiene assembly caricati con i ReflectionOnlyLoad metodi e ReflectionOnlyLoadFrom . Il codice in questi contesti non può essere eseguito.

  • Se l'utente ha generato o trovato l'assembly, non è in alcun contesto. Ciò si applica agli assembly caricati usando overload del metodo che specificano una matrice di byte contenente un assembly e agli assembly dinamici temporanei creati con l'emissione Load di reflection e non vengono salvati su disco.

Il carico dal contesto consente al caricamento di un assembly da un percorso non incluso nel test e consente tuttavia di trovare e caricare le dipendenze su tale percorso perché le informazioni sul percorso vengono mantenute dal contesto.

Il LoadFrom metodo presenta gli svantaggi seguenti. In alternativa, considerare l'utilizzo di Load.

  • Se un assembly con la stessa identità viene già caricato nel contesto di caricamento, LoadFrom restituisce l'assembly caricato anche se è stato specificato un percorso diverso.

  • Un assembly può essere caricato nel contesto di caricamento anche se esiste un assembly con la stessa identità nel contesto di caricamento. L'interoperabilità tra i due assembly non funzionerà, causando errori come InvalidCastException, MissingMethodExceptiono altri comportamenti imprevisti.

  • La chiamata LoadFrom con una posizione che si trova nel percorso di test caricherà l'assembly nel contesto di carico e non nel contesto di caricamento.

  • Se viene passato un file di assembly la cui identità viene passata da un criterio di reindirizzamento di associazione a LoadFrom, i criteri verranno applicati e l'assembly verrà caricato dal percorso di prova nel contesto di caricamento.

  • Se un assembly viene caricato nel contesto di carico e successivamente un assembly nel contesto di carico tenta di caricare lo stesso assembly in base al nome visualizzato, il tentativo di caricamento ha esito negativo. Questa situazione può verificarsi quando un assembly è deserializzato.

  • LoadFrom richiede FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery o WebPermission per il percorso specificato.

  • Se esiste un'immagine nativa per assemblyFile, non viene usata. Impossibile caricare l'assembly come neutrale del dominio.

Si applica a

LoadFrom(String, Evidence)

Attenzione

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.

Carica un assembly in base al nome file o al percorso e fornendo l'evidenza di sicurezza.

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

Parametri

assemblyFile
String

Nome o percorso del file che contiene il manifesto dell'assembly.

securityEvidence
Evidence

Evidenza per il caricamento dell'assembly.

Restituisce

Assembly caricato.

Attributi

Eccezioni

assemblyFile è null.

L'oggetto assemblyFile non è stato trovato oppure il modulo che si sta provando a caricare non specifica un'estensione di file.

Non è stato possibile caricare un file trovato.

-oppure-

L'oggetto securityEvidence non è ambiguo ed è risultato non valido.

-oppure-

La possibilità di eseguire codice negli assembly remoto è disabilitata. Vedere <loadFromRemoteSources>.

assemblyFile non è un assembly valido per il runtime attualmente caricato; ad esempio, un assembly a 32 bit in un processo a 64 bit.

È stata specificata una codebase che non inizia con "file://" senza l'oggetto WebPermission richiesto.

Il parametro assemblyFile è una stringa vuota ("").

Il nome dell'assembly supera la lunghezza massima definita dal sistema.

Commenti

Il assemblyFile parametro deve fare riferimento a un URI senza caratteri di escape. Questo metodo fornisce caratteri di escape per tutti i caratteri non validi nell'URI.

Nota

Il protocollo FTP (File Transfer Protocol) non è supportato. Se l'URI fornito per assemblyFile è un indirizzo FTP, l'assembly non viene caricato. Non viene generata alcuna eccezione.

assemblyFile può essere assoluto o relativo alla directory corrente.

Gli assembly possono essere caricati in uno dei tre contesti oppure possono essere caricati senza contesto:

  • Il contesto di carico contiene assembly trovati tramite il test: nella gaC, in un archivio assembly host se il runtime è ospitato o nel ApplicationBase dominio e PrivateBinPath dell'applicazione. La maggior parte degli overload del metodo Load carica gli assembly in questo contesto.

  • Il carico dal contesto contiene assembly per i quali l'utente ha fornito un percorso non incluso nelle directory di cui è stato eseguito il test. LoadFrom, CreateInstanceFrom e ExecuteAssembly sono esempi di metodi che vengono caricati in base al percorso.

    A partire da .NET Framework 4, se l'URI di assemblyFile specifica una posizione remota, il caricamento dell'assembly è disabilitato per impostazione predefinita e il LoadFrom metodo genera un FileLoadExceptionoggetto . Per abilitare l'esecuzione del codice caricato da posizioni remote, è possibile usare l'elemento <loadFromRemoteSources> di configurazione.

  • Il contesto di solo reflection contiene assembly caricati con i ReflectionOnlyLoad metodi e ReflectionOnlyLoadFrom . Il codice in questi contesti non può essere eseguito.

  • Se l'utente ha generato o trovato l'assembly, non è in alcun contesto. Ciò si applica agli assembly caricati usando overload del metodo che specificano una matrice di byte contenente un assembly e agli assembly dinamici temporanei creati con l'emissione Load di reflection e non vengono salvati su disco.

Il carico dal contesto consente al caricamento di un assembly da un percorso non incluso nel test e consente tuttavia di trovare e caricare le dipendenze su tale percorso perché le informazioni sul percorso vengono mantenute dal contesto.

Il LoadFrom metodo presenta gli svantaggi seguenti. In alternativa, considerare l'utilizzo di Load.

  • Se è già caricato un assembly con la stessa identità LoadFrom restituisce l'assembly caricato anche se è stato specificato un percorso diverso.

  • Se un assembly viene caricato con LoadFrome un assembly successivo nel contesto di carico tenta di caricare lo stesso assembly in base al nome visualizzato, il tentativo di caricamento ha esito negativo. Questa situazione può verificarsi quando un assembly è deserializzato.

  • Se un assembly viene caricato con LoadFrome il percorso di verifica include un assembly con la stessa identità, ma una posizione diversa, un InvalidCastExceptioncomportamento , MissingMethodExceptiono altro comportamento imprevisto può verificarsi.

  • LoadFrom richiede FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery o WebPermission per il percorso specificato.

  • Se esiste un'immagine nativa per assemblyFile, non viene usata. Impossibile caricare l'assembly come neutrale del dominio.

Se sussistano o meno le autorizzazioni per l'utilizzo di un assembly lo si evince dalle evidenze. Di seguito sono riportate le regole per l'unione di prove di assembly e sicurezza:

  • Quando si usa un LoadFrom metodo senza Evidence parametri, l'assembly viene caricato con l'evidenza fornita dal caricatore.

  • Quando si usa un metodo con un LoadFromEvidence parametro, vengono unite parti di evidenza. Parti di prove fornite come argomento per il LoadFrom metodo sostituiscono parti di prove fornite dal caricatore.

  • Se si chiama questo metodo più volte nello stesso assembly ma con un'evidenza diversa specificata, Common Language Runtime non genera un'eccezione FileLoadException perché non è possibile determinare l'uguaglianza e l'integrità delle diverse specifiche di evidenza. L'evidenza che ha prima esito positivo è l'evidenza usata.

  • Quando si usa un metodo con un LoadFromByte[] parametro per caricare un'immagine COFF (Common Object File Format), l'evidenza viene combinata. Zone, Url e Site vengono ereditati dall'assembly chiamante e StrongNameHash vengono acquisiti dall'assembly COFF.

  • Quando si usa un metodo con un LoadFromByte[] parametro e Evidence per caricare un'immagine COFF, viene usata solo l'evidenza fornita. L'evidenza dell'assembly chiamante e dell'evidenza dell'immagine COFF viene ignorata.

Vedi anche

Si applica a