Share via


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

Solo .NET Framework: Vedere <loadFromRemoteSources> per il caricamento di assembly da posizioni remote.

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-

assemblyFile specifica un percorso disabilitato in base al <caricamentoFromRemoteSources>.

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.

    Vedere <loadFromRemoteSources> per il caricamento di assembly da posizioni remote.

  • 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)

Origine:
Assembly.cs
Origine:
Assembly.cs
Origine:
Assembly.cs

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

Solo .NET Core e .NET 5+: In tutti i casi.

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-

assemblyFile specifica un percorso disabilitato in base al <caricamentoFromRemoteSources>.

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

In .NET Core e .NET 5+, questo metodo genera NotSupportedException quando viene chiamato. Usare invece LoadFrom(String).

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.

    Vedere <loadFromRemoteSources> per il caricamento di assembly da posizioni remote.

  • 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 contesto di caricamento consente il caricamento di un assembly da un percorso non incluso nel probe e consente tuttavia di trovare e caricare le dipendenze da tale percorso perché le informazioni sul percorso vengono gestite 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 successivamente un assembly nel contesto di caricamento tenta di caricare lo stesso assembly in base al nome visualizzato, il tentativo di caricamento non riesce. Questa situazione può verificarsi quando un assembly è deserializzato.

  • Se un assembly viene caricato con LoadFrome il percorso di probe include un assembly con la stessa identità, ma un percorso diverso, può verificarsi un MissingMethodExceptionInvalidCastExceptioncomportamento imprevisto o , o .

  • 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 fornita dal caricatore.

Si applica a

LoadFrom(String)

Origine:
Assembly.cs
Origine:
Assembly.cs
Origine:
Assembly.cs

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-

Solo .NET Framework: assemblyFile specifica un percorso disabilitato in base a< 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 in base al nome o al 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.

Solo .NET Framework: Gli assembly possono essere caricati in uno dei tre contesti oppure possono essere caricati senza contesto:

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

  • Il contesto di caricamento contiene assembly per i quali l'utente ha fornito un percorso non incluso nelle directory in cui viene eseguita la ricerca tramite probe. Consente inoltre di trovare e caricare le dipendenze da tale percorso perché le informazioni sul percorso vengono gestite dal contesto. LoadFrom, CreateInstanceFrom e ExecuteAssembly sono esempi di metodi che vengono caricati in base al percorso.

    Vedere <loadFromRemoteSources> per il caricamento di assembly da posizioni remote.

  • Il contesto di sola 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. Questo vale per gli assembly caricati usando overload del Load metodo che specificano una matrice di byte contenente un assembly e agli assembly dinamici temporanei creati con reflection emit e non salvati su disco.

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

  • Se un assembly con la stessa identità è 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 nel contesto di caricamento esiste un assembly con la stessa identità. L'interoperabilità tra i due assembly non funzionerà, causando errori come InvalidCastException, MissingMethodExceptiono un altro comportamento imprevisto.

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

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

  • Se un assembly viene caricato nel contesto di caricamento e successivamente un assembly nel contesto di caricamento tenta di caricare lo stesso assembly in base al nome visualizzato, il tentativo di caricamento non riesce. 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. L'assembly non può essere caricato come indipendente dal 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-

assemblyFilespecifica un percorso disabilitato in base a< 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 caricamento contiene assembly trovati tramite probe: nella GAC, in un archivio assembly host se il runtime è ospitato o nel ApplicationBase e PrivateBinPath del dominio dell'applicazione. La maggior parte degli overload del metodo Load carica gli assembly in questo contesto.

  • Il contesto di caricamento contiene assembly per i quali l'utente ha fornito un percorso non incluso nelle directory in cui viene eseguita la ricerca tramite probe. LoadFrom, CreateInstanceFrom e ExecuteAssembly sono esempi di metodi che vengono caricati in base al percorso.

    Vedere <loadFromRemoteSources> per il caricamento di assembly da posizioni remote.

  • Il contesto di sola 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. Questo vale per gli assembly caricati usando overload del Load metodo che specificano una matrice di byte contenente un assembly e agli assembly dinamici temporanei creati con reflection emit e non salvati su disco.

Il contesto di caricamento consente il caricamento di un assembly da un percorso non incluso nel probe e consente tuttavia di trovare e caricare le dipendenze da tale percorso perché le informazioni sul percorso vengono gestite 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 successivamente un assembly nel contesto di caricamento tenta di caricare lo stesso assembly in base al nome visualizzato, il tentativo di caricamento non riesce. Questa situazione può verificarsi quando un assembly è deserializzato.

  • Se un assembly viene caricato con LoadFrome il percorso di probe include un assembly con la stessa identità, ma un percorso diverso, può verificarsi un MissingMethodExceptionInvalidCastExceptioncomportamento imprevisto o , o .

  • 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 indipendente dal 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 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.

Vedi anche

Si applica a