Condividi tramite


Assembly.LoadFrom Metodo

Definizione

Carica un assembly.

Overload

Nome Descrizione
LoadFrom(String, Byte[], AssemblyHashAlgorithm)
Obsoleti.

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

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

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

LoadFrom(String)

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

LoadFrom(String, Evidence)
Obsoleti.

Carica un assembly in base al nome o al percorso del file e fornisce prove di sicurezza.

Commenti

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

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

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

Attenzione

LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an 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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
[System.Obsolete("LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.", DiagnosticId="SYSLIB0056", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
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);
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
[<System.Obsolete("LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.", DiagnosticId="SYSLIB0056", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
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 l'hashing dei file e per la generazione del nome sicuro.

Valori restituiti

Assembly caricato.

Attributi

Eccezioni

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

assemblyFile è null.

assemblyFile non viene trovato oppure il modulo che si sta tentando di caricare non specifica un'estensione del nome file.

Impossibile caricare un file trovato.

oppure

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.

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

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

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

Commenti

Questa API non è supportata in .NET Core/.NET 5+. Questo metodo genera NotSupportedException quando viene chiamato. Utilizzare 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.

Annotazioni

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 gli 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 caricano 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, CreateInstanceFrome ExecuteAssembly sono esempi di metodi che caricano 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 si trova 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 dipendenze da 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à è già caricato, 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. Ciò può verificarsi quando un assembly viene 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 InvalidCastExceptionMissingMethodExceptioncomportamento imprevisto o , o .

  • LoadFrom richiede FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, o WebPermission, nel percorso specificato.

  • Se esiste un'immagine nativa per assemblyFile, non viene usata. L'assembly non può essere caricato come neutrale rispetto al dominio.

L'assembly viene caricato con l'evidenza fornita dal caricatore.

Si applica a

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 o al percorso del file, 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 l'hashing dei file e per la generazione del nome sicuro.

Valori restituiti

Assembly caricato.

Attributi

Eccezioni

assemblyFile è null.

assemblyFile non viene trovato oppure il modulo che si sta tentando di caricare non specifica un'estensione del nome file.

Impossibile caricare un file trovato.

oppure

l'oggetto securityEvidence non è ambiguo e viene determinato come non valido.

oppure

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.

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

Il assemblyFile parametro è 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.

Annotazioni

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 dominio dell'applicazione e PrivateBinPath . La maggior parte degli overload del metodo Load caricano gli assembly in questo contesto.

  • Il contesto di caricamento contiene assembly per i quali l'utente ha fornito un percorso non incluso nelle directory ricercate tramite probe. LoadFrom, CreateInstanceFrome ExecuteAssembly sono esempi di metodi che caricano 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 si trova 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 dipendenze da 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à è già caricato, 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. Ciò può verificarsi quando un assembly viene 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 InvalidCastExceptionMissingMethodExceptioncomportamento imprevisto o , o .

  • LoadFrom richiede FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, o WebPermission, nel percorso specificato.

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

Che determinate autorizzazioni siano concesse o meno a un assembly è basato sull'evidenza. 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 LoadFrom metodo con un Evidence parametro, vengono unite parti di evidenza. Parti di prove fornite come argomento per il LoadFrom metodo sostituisce 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 LoadFrom metodo con un Byte[] parametro per caricare un'immagine COFF (Common Object File Format), l'evidenza viene combinata. Zonee UrlSite vengono ereditati dall'assembly chiamante e HashStrongName vengono ricavati dall'assembly COFF.

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

Si applica a

LoadFrom(String)

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

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

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile);
public static System.Reflection.Assembly LoadFrom(string assemblyFile);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member LoadFrom : string -> System.Reflection.Assembly
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.

Valori restituiti

Assembly caricato.

Attributi

Eccezioni

assemblyFile è null.

assemblyFile non viene trovato oppure il modulo che si sta tentando di caricare non specifica un'estensione del nome file.

Impossibile 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.

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

Il assemblyFile parametro è 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.
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

Questa API è presente in .NET Core per la compatibilità, ma è consigliabile usare AssemblyLoadContext gli overload.

L'assembly viene caricato nell'assembly predefinito AssemblyLoadContext. Per altre informazioni sul caricamento di assembly, vedere Algoritmo di caricamento dell'assembly gestito.

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.

Annotazioni

Solo .NET Framework: 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 dominio dell'applicazione e PrivateBinPath . La maggior parte degli overload del metodo Load caricano gli assembly in questo contesto.

  • Il contesto di caricamento contiene assembly per i quali l'utente ha fornito un percorso non incluso nelle directory ricercate tramite probe. Consente inoltre di trovare e caricare le dipendenze da tale percorso perché le informazioni sul percorso vengono gestite dal contesto. LoadFrom, CreateInstanceFrome ExecuteAssembly sono esempi di metodi che caricano 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 si trova 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 altri comportamenti imprevisti.

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

  • Se un file di assembly la cui identità viene spostata da un criterio di reindirizzamento dell'associazione viene passato 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. Ciò può verificarsi quando un assembly viene deserializzato.

  • LoadFrom richiede FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, o WebPermission, nel 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 o al percorso del file e fornisce prove 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.

Valori restituiti

Assembly caricato.

Attributi

Eccezioni

assemblyFile è null.

assemblyFile non viene trovato oppure il modulo che si sta tentando di caricare non specifica un'estensione del nome file.

Impossibile caricare un file trovato.

oppure

l'oggetto securityEvidence non è ambiguo e viene determinato come non valido.

oppure

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.

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

Il assemblyFile parametro è 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.

Annotazioni

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 dominio dell'applicazione e PrivateBinPath . La maggior parte degli overload del metodo Load caricano gli assembly in questo contesto.

  • Il contesto di caricamento contiene assembly per i quali l'utente ha fornito un percorso non incluso nelle directory ricercate tramite probe. LoadFrom, CreateInstanceFrome ExecuteAssembly sono esempi di metodi che caricano 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 si trova 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 dipendenze da 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à è già caricato, 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. Ciò può verificarsi quando un assembly viene 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 InvalidCastExceptionMissingMethodExceptioncomportamento imprevisto o , o .

  • LoadFrom richiede FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, o WebPermission, nel percorso specificato.

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

Che determinate autorizzazioni siano concesse o meno a un assembly è basato sull'evidenza. 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 LoadFrom metodo con un Evidence parametro, vengono unite parti di evidenza. Parti di prove fornite come argomento per il LoadFrom metodo sostituisce 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 LoadFrom metodo con un Byte[] parametro per caricare un'immagine COFF (Common Object File Format), l'evidenza viene combinata. Zonee UrlSite vengono ereditati dall'assembly chiamante e HashStrongName vengono ricavati dall'assembly COFF.

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

Vedi anche

Si applica a