Assembly.LoadFrom Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Charge un assembly.
Surcharges
| Nom | Description |
|---|---|
| LoadFrom(String, Byte[], AssemblyHashAlgorithm) |
Obsolète.
Charge un assembly en fonction du nom de fichier ou du chemin d’accès, de la valeur de hachage et de l’algorithme de hachage. |
| LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm) |
Obsolète.
Charge un assembly en fonction de son nom de fichier ou de son chemin d’accès, de la preuve de sécurité, de la valeur de hachage et de l’algorithme de hachage. |
| LoadFrom(String) |
Charge un assembly en fonction de son nom de fichier ou de son chemin d’accès. |
| LoadFrom(String, Evidence) |
Obsolète.
Charge un assembly en fonction de son nom de fichier ou de son chemin d’accès et fournit des preuves de sécurité. |
Remarques
.NET Framework uniquement : Voir <loadFromRemoteSources> pour le chargement d’assemblys à partir d’emplacements distants.
LoadFrom(String, Byte[], AssemblyHashAlgorithm)
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
Attention
LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.
Charge un assembly en fonction du nom de fichier ou du chemin d’accès, de la valeur de hachage et de l’algorithme de hachage.
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
Paramètres
- assemblyFile
- String
Nom ou chemin d’accès du fichier qui contient le manifeste de l’assembly.
- hashValue
- Byte[]
Valeur du code de hachage calculé.
- hashAlgorithm
- AssemblyHashAlgorithm
Algorithme de hachage utilisé pour le hachage de fichiers et pour générer le nom fort.
Retours
Assembly chargé.
- Attributs
Exceptions
.NET Core et .NET 5+ uniquement : dans tous les cas.
assemblyFile a la valeur null.
assemblyFile est introuvable, ou le module que vous essayez de charger ne spécifie pas d’extension de nom de fichier.
Impossible de charger un fichier trouvé.
- ou -
assemblyFilespécifie un emplacement désactivé en fonction de< loadFromRemoteSources>.
assemblyFile n’est pas un assembly valide pour le runtime actuellement chargé ; par exemple, un assembly 32 bits dans un processus 64 bits.
Une base de code qui ne commence pas par « file:// » a été spécifiée sans le code requis WebPermission.
Le assemblyFile paramètre est une chaîne vide (« »).
Le nom de l’assembly dépasse la longueur maximale définie par le système.
Remarques
Cette API n’est pas prise en charge dans .NET Core/.NET 5+. Cette méthode lève lorsqu’elle est NotSupportedException appelée. Utilisez LoadFrom(String) à la place.
Le assemblyFile paramètre doit faire référence à un URI sans caractères d’échappement. Cette méthode fournit des caractères d’échappement pour tous les caractères non valides dans l’URI.
Note
Le protocole FTP (File Transfer Protocol) n’est pas pris en charge. Si l’URI fourni pour assemblyFile est une adresse FTP, l’assembly n’est pas chargé. Aucune exception n’est générée.
assemblyFile peut être absolu ou relatif au répertoire actif.
Les assemblys peuvent être chargés dans l’un des trois contextes, ou peuvent être chargés sans contexte :
Le contexte de charge contient des assemblys trouvés en probisant : dans le Global Assembly Cache, dans un magasin d’assemblys hôte si le runtime est hébergé ou dans le ApplicationBase domaine de l’application.PrivateBinPath La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.
Le contexte de chargement contient des assemblys pour lesquels l’utilisateur a fourni un chemin d’accès qui n’est pas inclus dans la détection. LoadFrom, CreateInstanceFromet ExecuteAssembly sont des exemples de méthodes qui chargent par chemin d’accès.
Voir
<loadFromRemoteSources>pour le chargement d’assemblys à partir d’emplacements distants.Le contexte de réflexion uniquement contient des assemblys chargés avec les méthodes et ReflectionOnlyLoadFrom le ReflectionOnlyLoad code dans ces contextes ne peuvent pas être exécutés.
Si l’utilisateur a généré ou trouvé l’assembly, il n’est pas dans un contexte quelconque. Cela s’applique aux assemblys chargés à l’aide de surcharges de la Load méthode qui spécifient un tableau d’octets contenant un assembly et aux assemblys dynamiques temporaires créés avec l’émission de réflexion et non enregistrés sur le disque.
Le contexte de chargement permet à un assembly d’être chargé à partir d’un chemin d’accès qui n’est pas inclus dans la détection, et autorise encore les dépendances sur ce chemin d’accès à trouver et à charger, car les informations de chemin d’accès sont conservées par le contexte.
La LoadFrom méthode présente les inconvénients suivants. Utilisez Load à la place.
Si un assembly avec la même identité est déjà chargé, LoadFrom retourne l’assembly chargé même si un chemin d’accès différent a été spécifié.
Si un assembly est chargé avec LoadFrom, et ultérieurement un assembly dans le contexte de chargement tente de charger le même assembly par nom d’affichage, la tentative de chargement échoue. Cela peut se produire lorsqu’un module est désérialisé.
Si un assembly est chargé avec LoadFrom, et que le chemin d’accès de détection inclut un assembly avec la même identité, mais un autre emplacement, un InvalidCastException, MissingMethodExceptionou un autre comportement inattendu peut se produire.
LoadFrom demande FileIOPermissionAccess.Read et FileIOPermissionAccess.PathDiscovery, ou WebPermission, sur le chemin spécifié.
Si une image native existe pour
assemblyFile, elle n’est pas utilisée. L’assembly ne peut pas être chargé comme étant indépendant du domaine.
L’assembly est chargé avec la preuve que le chargeur fournit.
S’applique à
LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
Attention
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.
Charge un assembly en fonction de son nom de fichier ou de son chemin d’accès, de la preuve de sécurité, de la valeur de hachage et de l’algorithme de hachage.
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
Paramètres
- assemblyFile
- String
Nom ou chemin d’accès du fichier qui contient le manifeste de l’assembly.
- securityEvidence
- Evidence
Preuve du chargement de l’assembly.
- hashValue
- Byte[]
Valeur du code de hachage calculé.
- hashAlgorithm
- AssemblyHashAlgorithm
Algorithme de hachage utilisé pour le hachage de fichiers et pour générer le nom fort.
Retours
Assembly chargé.
- Attributs
Exceptions
assemblyFile a la valeur null.
assemblyFile est introuvable, ou le module que vous essayez de charger ne spécifie pas d’extension de nom de fichier.
Impossible de charger un fichier trouvé.
- ou -
Ce securityEvidence n’est pas ambigu et est déterminé comme non valide.
- ou -
assemblyFilespécifie un emplacement désactivé en fonction de< loadFromRemoteSources>.
assemblyFile n’est pas un assembly valide pour le runtime actuellement chargé ; par exemple, un assembly 32 bits dans un processus 64 bits.
Une base de code qui ne commence pas par « file:// » a été spécifiée sans le code requis WebPermission.
Le assemblyFile paramètre est une chaîne vide (« »).
Le nom de l’assembly dépasse la longueur maximale définie par le système.
Remarques
Le assemblyFile paramètre doit faire référence à un URI sans caractères d’échappement. Cette méthode fournit des caractères d’échappement pour tous les caractères non valides dans l’URI.
Note
Le protocole FTP (File Transfer Protocol) n’est pas pris en charge. Si l’URI fourni pour assemblyFile est une adresse FTP, l’assembly n’est pas chargé. Aucune exception n’est générée.
assemblyFile peut être absolu ou relatif au répertoire actif.
Les assemblys peuvent être chargés dans l’un des trois contextes, ou peuvent être chargés sans contexte :
Le contexte de charge contient des assemblys trouvés en probisant : dans le GAC, dans un magasin d’assemblys hôte si le runtime est hébergé, ou dans le ApplicationBase domaine d’application et PrivateBinPath dans celui-ci. La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.
Le contexte de chargement contient des assemblys pour lesquels l’utilisateur a fourni un chemin d’accès non inclus dans les répertoires recherchés par la détection. LoadFrom, CreateInstanceFromet ExecuteAssembly sont des exemples de méthodes qui chargent par chemin d’accès.
Voir
<loadFromRemoteSources>pour le chargement d’assemblys à partir d’emplacements distants.Le contexte de réflexion uniquement contient des assemblys chargés avec les méthodes et ReflectionOnlyLoadFrom le ReflectionOnlyLoad code dans ces contextes ne peuvent pas être exécutés.
Si l’utilisateur a généré ou trouvé l’assembly, il n’est pas dans un contexte quelconque. Cela s’applique aux assemblys chargés à l’aide de surcharges de la Load méthode qui spécifient un tableau d’octets contenant un assembly et aux assemblys dynamiques temporaires créés avec l’émission de réflexion et non enregistrés sur le disque.
Le contexte de chargement permet à un assembly d’être chargé à partir d’un chemin d’accès non inclus dans la détection, et autorise encore les dépendances sur ce chemin à trouver et à charger, car les informations de chemin d’accès sont conservées par le contexte.
La LoadFrom méthode présente les inconvénients suivants. Utilisez Load à la place.
Si un assembly avec la même identité est déjà chargé, LoadFrom retourne l’assembly chargé même si un chemin d’accès différent a été spécifié.
Si un assembly est chargé avec LoadFrom, et ultérieurement un assembly dans le contexte de chargement tente de charger le même assembly par nom d’affichage, la tentative de chargement échoue. Cela peut se produire lorsqu’un module est désérialisé.
Si un assembly est chargé avec LoadFrom, et que le chemin d’accès de détection inclut un assembly avec la même identité, mais un autre emplacement, un InvalidCastException, MissingMethodExceptionou un autre comportement inattendu peut se produire.
LoadFrom demande FileIOPermissionAccess.Read et FileIOPermissionAccess.PathDiscovery, ou WebPermission, sur le chemin spécifié.
Si une image native existe pour
assemblyFile, elle n’est pas utilisée. L’assembly ne peut pas être chargé en tant que domaine neutre.
Que certaines autorisations soient accordées ou non accordées à une assemblée repose sur des preuves. Les règles de fusion des preuves d’assembly et de sécurité sont les suivantes :
Lorsque vous utilisez une LoadFrom méthode sans Evidence paramètre, l’assembly est chargé avec la preuve que le chargeur fournit.
Lorsque vous utilisez une LoadFrom méthode avec un Evidence paramètre, des éléments de preuve sont fusionnés. Éléments de preuve fournis en tant qu’argument de la LoadFrom méthode remplacent les éléments de preuve fournis par le chargeur.
Si vous appelez cette méthode plusieurs fois sur le même assembly, mais avec une preuve différente spécifiée, le Common Language Runtime ne lève pas de FileLoadException preuve car l’égalité et l’intégrité des différentes spécifications de preuve ne peuvent pas être déterminées. La preuve qui réussit d’abord est la preuve utilisée.
Lorsque vous utilisez une LoadFrom méthode avec un
Byte[]paramètre pour charger une image COFF (Common Object File Format), la preuve est combinée.Zone,UrletSitesont hérités de l’assembly appelant etStrongNameHashsont extraits de l’assembly COFF.Lorsque vous utilisez une LoadFrom méthode avec un
Byte[]paramètre et Evidence que vous chargez une image COFF, seule la preuve fournie est utilisée. La preuve de l’assembly appelant et de la preuve de l’image COFF est ignorée.
S’applique à
LoadFrom(String)
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
Charge un assembly en fonction de son nom de fichier ou de son chemin d’accès.
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
Paramètres
- assemblyFile
- String
Nom ou chemin d’accès du fichier qui contient le manifeste de l’assembly.
Retours
Assembly chargé.
- Attributs
Exceptions
assemblyFile a la valeur null.
assemblyFile est introuvable, ou le module que vous essayez de charger ne spécifie pas d’extension de nom de fichier.
Impossible de charger un fichier trouvé.
- ou -
.NET Framework uniquement : assemblyFile spécifie un emplacement désactivé en <fonction de loadFromRemoteSources>.
assemblyFile n’est pas un assembly valide pour le runtime actuellement chargé ; par exemple, un assembly 32 bits dans un processus 64 bits.
Une base de code qui ne commence pas par « file:// » a été spécifiée sans le code requis WebPermission.
Le assemblyFile paramètre est une chaîne vide (« »).
Le nom de l’assembly dépasse la longueur maximale définie par le système.
Exemples
L’exemple suivant charge un assembly en fonction du nom de fichier ou du chemin d’accès.
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
Remarques
Cette API est présente dans .NET Core pour la compatibilité, mais il est recommandé d’utiliser AssemblyLoadContext des surcharges à la place.
L’assembly est chargé dans l’assembly AssemblyLoadContext par défaut. Pour plus d’informations sur le chargement d’assembly, consultez l’algorithme de chargement d’assembly managé.
Le assemblyFile paramètre doit faire référence à un URI sans caractères d’échappement. Cette méthode fournit des caractères d’échappement pour tous les caractères non valides dans l’URI.
Note
.NET Framework uniquement : le protocole FTP (File Transfer Protocol) n’est pas pris en charge. Si l’URI fourni pour assemblyFile est une adresse FTP, l’assembly n’est pas chargé. Aucune exception n’est générée.
assemblyFile peut être absolu ou relatif au répertoire actif.
.NET Framework uniquement : Les assemblys peuvent être chargés dans l’un des trois contextes, ou peuvent être chargés sans contexte :
Le contexte de charge contient des assemblys trouvés en probisant : dans le GAC, dans un magasin d’assemblys hôte si le runtime est hébergé, ou dans le ApplicationBase domaine d’application et PrivateBinPath dans celui-ci. La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.
Le contexte de chargement contient des assemblys pour lesquels l’utilisateur a fourni un chemin d’accès non inclus dans les répertoires recherchés par la détection. Il permet également aux dépendances de ce chemin d’accès d’être trouvés et chargés, car les informations de chemin d’accès sont conservées par le contexte. LoadFrom, CreateInstanceFromet ExecuteAssembly sont des exemples de méthodes qui chargent par chemin d’accès.
Voir
<loadFromRemoteSources>pour le chargement d’assemblys à partir d’emplacements distants.Le contexte de réflexion uniquement contient des assemblys chargés avec les méthodes et ReflectionOnlyLoadFrom le ReflectionOnlyLoad code dans ces contextes ne peuvent pas être exécutés.
Si l’utilisateur a généré ou trouvé l’assembly, il n’est pas dans un contexte quelconque. Cela s’applique aux assemblys chargés à l’aide de surcharges de la Load méthode qui spécifient un tableau d’octets contenant un assembly et aux assemblys dynamiques temporaires créés avec l’émission de réflexion et non enregistrés sur le disque.
La LoadFrom méthode présente les inconvénients suivants. Utilisez Load à la place.
Si un assembly avec la même identité est déjà chargé dans le contexte de chargement, LoadFrom retourne l’assembly chargé même si un chemin d’accès différent a été spécifié.
Un assembly peut être chargé dans le contexte de chargement à partir du contexte même si un assembly avec la même identité existe dans le contexte de chargement. L’interopérabilité entre les deux assemblys ne fonctionne pas, ce qui entraîne des erreurs telles que InvalidCastException, MissingMethodExceptionou un autre comportement inattendu.
L’appel LoadFrom avec un emplacement qui se trouve dans le chemin d’accès de détection charge l’assembly dans le contexte de chargement et non dans le contexte de chargement.
Si un fichier d’assembly dont l’identité est governée par une stratégie de redirection de liaison est passée LoadFrom, la stratégie est appliquée et l’assembly est chargé à partir du chemin d’accès de détection dans le contexte de chargement.
Si un assembly est chargé dans le contexte de chargement à partir du contexte, puis qu’un assembly dans le contexte de charge tente de charger le même assembly par nom d’affichage, la tentative de chargement échoue. Cela peut se produire lorsqu’un module est désérialisé.
LoadFrom demande FileIOPermissionAccess.Read et FileIOPermissionAccess.PathDiscovery, ou WebPermission, sur le chemin spécifié.
Si une image native existe pour
assemblyFile, elle n’est pas utilisée. L’assembly ne peut pas être chargé en tant que domaine neutre.
S’applique à
LoadFrom(String, Evidence)
Attention
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.
Charge un assembly en fonction de son nom de fichier ou de son chemin d’accès et fournit des preuves de sécurité.
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
Paramètres
- assemblyFile
- String
Nom ou chemin d’accès du fichier qui contient le manifeste de l’assembly.
- securityEvidence
- Evidence
Preuve du chargement de l’assembly.
Retours
Assembly chargé.
- Attributs
Exceptions
assemblyFile a la valeur null.
assemblyFile est introuvable, ou le module que vous essayez de charger ne spécifie pas d’extension de nom de fichier.
Impossible de charger un fichier trouvé.
- ou -
Ce securityEvidence n’est pas ambigu et est déterminé comme non valide.
- ou -
assemblyFilespécifie un emplacement désactivé en fonction de< loadFromRemoteSources>.
assemblyFile n’est pas un assembly valide pour le runtime actuellement chargé ; par exemple, un assembly 32 bits dans un processus 64 bits.
Une base de code qui ne commence pas par « file:// » a été spécifiée sans le code requis WebPermission.
Le assemblyFile paramètre est une chaîne vide (« »).
Le nom de l’assembly dépasse la longueur maximale définie par le système.
Remarques
Le assemblyFile paramètre doit faire référence à un URI sans caractères d’échappement. Cette méthode fournit des caractères d’échappement pour tous les caractères non valides dans l’URI.
Note
Le protocole FTP (File Transfer Protocol) n’est pas pris en charge. Si l’URI fourni pour assemblyFile est une adresse FTP, l’assembly n’est pas chargé. Aucune exception n’est générée.
assemblyFile peut être absolu ou relatif au répertoire actif.
Les assemblys peuvent être chargés dans l’un des trois contextes, ou peuvent être chargés sans contexte :
Le contexte de charge contient des assemblys trouvés en probisant : dans le GAC, dans un magasin d’assemblys hôte si le runtime est hébergé, ou dans le ApplicationBase domaine d’application et PrivateBinPath dans celui-ci. La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.
Le contexte de chargement contient des assemblys pour lesquels l’utilisateur a fourni un chemin d’accès non inclus dans les répertoires recherchés par la détection. LoadFrom, CreateInstanceFromet ExecuteAssembly sont des exemples de méthodes qui chargent par chemin d’accès.
Voir
<loadFromRemoteSources>pour le chargement d’assemblys à partir d’emplacements distants.Le contexte de réflexion uniquement contient des assemblys chargés avec les méthodes et ReflectionOnlyLoadFrom le ReflectionOnlyLoad code dans ces contextes ne peuvent pas être exécutés.
Si l’utilisateur a généré ou trouvé l’assembly, il n’est pas dans un contexte quelconque. Cela s’applique aux assemblys chargés à l’aide de surcharges de la Load méthode qui spécifient un tableau d’octets contenant un assembly et aux assemblys dynamiques temporaires créés avec l’émission de réflexion et non enregistrés sur le disque.
Le contexte de chargement permet à un assembly d’être chargé à partir d’un chemin d’accès non inclus dans la détection, et autorise encore les dépendances sur ce chemin à trouver et à charger, car les informations de chemin d’accès sont conservées par le contexte.
La LoadFrom méthode présente les inconvénients suivants. Utilisez Load à la place.
Si un assembly avec la même identité est déjà chargé, LoadFrom retourne l’assembly chargé même si un chemin d’accès différent a été spécifié.
Si un assembly est chargé avec LoadFrom, et ultérieurement un assembly dans le contexte de chargement tente de charger le même assembly par nom d’affichage, la tentative de chargement échoue. Cela peut se produire lorsqu’un module est désérialisé.
Si un assembly est chargé avec LoadFrom, et que le chemin d’accès de détection inclut un assembly avec la même identité, mais un autre emplacement, un InvalidCastException, MissingMethodExceptionou un autre comportement inattendu peut se produire.
LoadFrom demande FileIOPermissionAccess.Read et FileIOPermissionAccess.PathDiscovery, ou WebPermission, sur le chemin spécifié.
Si une image native existe pour
assemblyFile, elle n’est pas utilisée. L’assembly ne peut pas être chargé en tant que domaine neutre.
Que certaines autorisations soient accordées ou non accordées à une assemblée repose sur des preuves. Les règles de fusion des preuves d’assembly et de sécurité sont les suivantes :
Lorsque vous utilisez une LoadFrom méthode sans Evidence paramètre, l’assembly est chargé avec la preuve que le chargeur fournit.
Lorsque vous utilisez une LoadFrom méthode avec un Evidence paramètre, des éléments de preuve sont fusionnés. Éléments de preuve fournis en tant qu’argument de la LoadFrom méthode remplacent les éléments de preuve fournis par le chargeur.
Si vous appelez cette méthode plusieurs fois sur le même assembly, mais avec une preuve différente spécifiée, le Common Language Runtime ne lève pas de FileLoadException preuve car l’égalité et l’intégrité des différentes spécifications de preuve ne peuvent pas être déterminées. La preuve qui réussit d’abord est la preuve utilisée.
Lorsque vous utilisez une LoadFrom méthode avec un
Byte[]paramètre pour charger une image COFF (Common Object File Format), la preuve est combinée.Zone,UrletSitesont hérités de l’assembly appelant etStrongNameHashsont extraits de l’assembly COFF.Lorsque vous utilisez une LoadFrom méthode avec un
Byte[]paramètre et Evidence que vous chargez une image COFF, seule la preuve fournie est utilisée. La preuve de l’assembly appelant et de la preuve de l’image COFF est ignorée.