Assembly.LoadFrom Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
Creare in modo esplicito una sandbox per l'assembly. Vedere Procedura: Eseguire codice parzialmente attendibile in una sandbox.
Eseguire il codice dell'assembly con attendibilità totale impostando l'attributo dell'elemento
enabled
<loadFromRemoteSources>
di configurazione sutrue
. Per altre informazioni, vedere l'articolo relativo all'elemento<loadFromRemoteSources>
di configurazione.
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 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.
A partire da .NET Framework 4, se l'URI di
assemblyFile
specifica un percorso remoto, il caricamento degli assembly è disabilitato per impostazione predefinita e ilLoadFrom
metodo genera un'eccezione FileLoadException. Per abilitare l'esecuzione del codice caricato da posizioni remote, è possibile usare l'elemento<loadFromRemoteSources>
di configurazione.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 prima esito positivo è l'evidenza usata.
Quando si usa un metodo con un LoadFrom
Byte[]
parametro per caricare un'immagine COFF (Common Object File Format), l'evidenza viene combinata.Zone
,Url
eSite
vengono ereditati dall'assembly chiamante eStrongName
Hash
vengono acquisiti dall'assembly COFF.Quando si usa un metodo con un LoadFrom
Byte[]
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.
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
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 caricamento contiene assembly trovati tramite probe: nella Global Assembly Cache, 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 nel probe. 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 un percorso remoto, il caricamento degli assembly è disabilitato per impostazione predefinita e ilLoadFrom
metodo genera un'eccezione FileLoadException. Per abilitare l'esecuzione del codice caricato da posizioni remote, è possibile usare l'elemento<loadFromRemoteSources>
di configurazione.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. 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)
- 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-
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 ilLoadFrom
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 ilLoadFrom
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 LoadFrom
Byte[]
parametro per caricare un'immagine COFF (Common Object File Format), l'evidenza viene combinata.Zone
,Url
eSite
vengono ereditati dall'assembly chiamante eStrongName
Hash
vengono acquisiti dall'assembly COFF.Quando si usa un metodo con un LoadFrom
Byte[]
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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per