Partager via


Assembly.LoadFrom Méthode

Définition

Charge un assembly.

Surcharges

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, Byte[], AssemblyHashAlgorithm)

Charge un assembly en fonction de son nom de fichier ou de son chemin d'accès, 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 en fournissant la preuve de sécurité.

Remarques

.NET Framework uniquement : Consultez <loadFromRemoteSources> pour le chargement d’assemblys à partir d’emplacements distants.

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 d’assembly.

securityEvidence
Evidence

Preuve de chargement de l'assembly.

hashValue
Byte[]

Valeur du code de hachage calculé.

hashAlgorithm
AssemblyHashAlgorithm

Algorithme de hachage utilisé pour hacher les 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 l’un des fichiers trouvés.

- ou -

Le securityEvidence n’est pas ambigu et est considéré comme étant non valide.

- ou -

assemblyFile spécifie un emplacement qui est 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.

Un code base qui ne commence pas par "file://" a été spécifié sans la WebPermission requise.

Le paramètre assemblyFile 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.

Notes

Le protocole de transfert de fichiers (FTP) 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 chargement contient les assemblys trouvés par sondage : dans le GAC, dans un magasin d’assemblys hôte si le runtime est hébergé, ou dans et ApplicationBasePrivateBinPath du domaine d’application. La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.

  • Le contexte de chargement à partir de contient des assemblys pour lesquels l’utilisateur a fourni un chemin d’accès non inclus dans les répertoires recherchés par sondage. LoadFrom, CreateInstanceFrom et ExecuteAssembly sont des exemples de méthodes qui sont chargées via un chemin.

    Consultez <loadFromRemoteSources> pour le chargement d’assemblys à partir d’emplacements distants.

  • Le contexte de réflexion uniquement contient des assemblys chargés avec les ReflectionOnlyLoad méthodes et ReflectionOnlyLoadFrom ; le code dans ces contextes ne peut pas être exécuté.

  • Si l’utilisateur a généré ou trouvé l’assembly, il ne se trouve dans aucun contexte. 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, ainsi qu’aux assemblys dynamiques temporaires créés avec l’émission de réflexion et non enregistrés sur le disque.

Le contexte de chargement à partir de permet de charger un assembly à partir d’un chemin d’accès qui n’est pas inclus dans l’analyse, et permet néanmoins de rechercher et de charger des dépendances sur ce chemin, 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 autre chemin a été spécifié.

  • Si un assembly est chargé avec LoadFromet qu’un assembly dans le contexte de chargement tente ultérieurement de charger le même assembly par nom d’affichage, la tentative de chargement échoue. Ceci peut se produire quand un assembly est désérialisé.

  • Si un assembly est chargé avec LoadFrom, et que le chemin d’exploration inclut un assembly avec la même identité, mais qu’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.

L'octroi ou non de certaines autorisations à un assembly repose sur la preuve. 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, les éléments de preuve sont fusionnés. Les éléments de preuve fournis comme 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 un FileLoadException , car l’égalité et l’intégrité des différentes spécifications de preuves ne peuvent pas être déterminées. La preuve qu’elle réussit en premier est la preuve utilisée.

  • Lorsque vous utilisez une LoadFrom méthode avec un Byte[] paramètre pour charger une image au format de fichier objet commun (COFF), les preuves sont combinées. Zone, Url et Site sont hérités de l’assembly appelant, et Hash et StrongName sont extraits de l’assembly COFF.

  • Lorsque vous utilisez une LoadFrom méthode avec un Byte[] paramètre et Evidence pour charger une image COFF, seule la preuve fournie est utilisée. La preuve de l’assembly appelant et la preuve de l’image COFF sont ignorées.

S’applique à

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

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, 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);
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

Paramètres

assemblyFile
String

Nom ou chemin d’accès du fichier qui contient le manifeste d’assembly.

hashValue
Byte[]

Valeur du code de hachage calculé.

hashAlgorithm
AssemblyHashAlgorithm

Algorithme de hachage utilisé pour hacher les fichiers et pour générer le nom fort.

Retours

Assembly chargé.

Exceptions

.NET Core et .NET 5 (et versions ultérieures) 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 une extension de nom de fichier.

Impossible de charger l’un des fichiers trouvés.

- ou -

assemblyFile spécifie un emplacement qui est 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.

Un code base qui ne commence pas par "file://" a été spécifié sans la WebPermission requise.

Le paramètre assemblyFile est une chaîne vide ("").

Le nom de l’assembly dépasse la longueur maximale définie par le système.

Remarques

Dans .NET Core et .NET 5+, cette méthode est levée 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.

Notes

Le protocole de transfert de fichiers (FTP) 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 chargement contient les assemblys trouvés par sondage : dans le global assembly cache, dans un magasin d’assemblys hôte si le runtime est hébergé, ou dans et ApplicationBasePrivateBinPath du domaine d’application. La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.

  • Le contexte de chargement à partir de contient des assemblys pour lesquels l’utilisateur a fourni un chemin qui n’est pas inclus dans le sondage. LoadFrom, CreateInstanceFrom et ExecuteAssembly sont des exemples de méthodes qui sont chargées via un chemin.

    Consultez <loadFromRemoteSources> pour le chargement d’assemblys à partir d’emplacements distants.

  • Le contexte de réflexion uniquement contient des assemblys chargés avec les ReflectionOnlyLoad méthodes et ReflectionOnlyLoadFrom ; le code dans ces contextes ne peut pas être exécuté.

  • Si l’utilisateur a généré ou trouvé l’assembly, il ne se trouve dans aucun contexte. 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, ainsi qu’aux assemblys dynamiques temporaires créés avec l’émission de réflexion et non enregistrés sur le disque.

Le contexte de chargement à partir de permet de charger un assembly à partir d’un chemin d’accès qui n’est pas inclus dans l’analyse, tout en permettant de rechercher et de charger des dépendances sur ce chemin, 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 autre chemin a été spécifié.

  • Si un assembly est chargé avec LoadFromet qu’un assembly dans le contexte de chargement tente ultérieurement de charger le même assembly par nom d’affichage, la tentative de chargement échoue. Ceci peut se produire quand un assembly est désérialisé.

  • Si un assembly est chargé avec LoadFrom, et que le chemin d’exploration inclut un assembly avec la même identité, mais qu’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)

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);
public static System.Reflection.Assembly LoadFrom (string assemblyFile);
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 d’assembly.

Retours

Assembly chargé.

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 l’un des fichiers trouvés.

- ou -

.NET Framework uniquement : assemblyFile spécifie un emplacement qui est 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.

Un code base qui ne commence pas par "file://" a été spécifié sans la WebPermission requise.

Le paramètre assemblyFile 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 de son nom de fichier ou de son 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.
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

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.

Notes

Le protocole de transfert de fichiers (FTP) 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 chargement contient les assemblys trouvés par sondage : dans le GAC, dans un magasin d’assemblys hôte si le runtime est hébergé, ou dans et ApplicationBasePrivateBinPath du domaine d’application. La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.

  • Le contexte de chargement à partir de contient des assemblys pour lesquels l’utilisateur a fourni un chemin d’accès non inclus dans les répertoires recherchés par sondage. Il permet également de trouver et de charger des dépendances sur ce chemin d’accès, car les informations de chemin sont conservées par le contexte. LoadFrom, CreateInstanceFrom et ExecuteAssembly sont des exemples de méthodes qui sont chargées via un chemin.

    Consultez <loadFromRemoteSources> pour le chargement d’assemblys à partir d’emplacements distants.

  • Le contexte de réflexion uniquement contient des assemblys chargés avec les ReflectionOnlyLoad méthodes et ReflectionOnlyLoadFrom ; le code dans ces contextes ne peut pas être exécuté.

  • Si l’utilisateur a généré ou trouvé l’assembly, il ne se trouve dans aucun contexte. 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, ainsi qu’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 source, LoadFrom retourne l’assembly chargé même si un autre chemin a été spécifié.

  • Un assembly peut être chargé dans le contexte de chargement à partir du contexte de chargement même si un assembly avec la même identité existe dans le contexte de chargement. L’interopérabilité entre les deux assemblys ne fonctionnera pas, ce qui entraîne des erreurs telles que InvalidCastException, MissingMethodExceptionou d’autres comportements inattendus.

  • L’appel LoadFrom avec un emplacement qui se trouve dans le chemin d’interrogation charge l’assembly dans le contexte de chargement et non dans le contexte de chargement à partir de.

  • Si un fichier d’assembly dont l’identité est goverennée par une stratégie de redirection de liaison est passé à LoadFrom, la stratégie est appliquée et l’assembly est chargé à partir du chemin d’interrogation dans le contexte de chargement.

  • Si un assembly est chargé dans le contexte de chargement à partir du contexte de chargement et qu’un assembly du contexte de chargement tente ultérieurement de charger le même assembly par nom d’affichage, la tentative de chargement échoue. Ceci peut se produire quand un assembly 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 en fournissant la preuve 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 d’assembly.

securityEvidence
Evidence

Preuve de 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 l’un des fichiers trouvés.

- ou -

Le securityEvidence n’est pas ambigu et est considéré comme étant non valide.

- ou -

assemblyFile spécifie un emplacement qui est 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.

Un code base qui ne commence pas par "file://" a été spécifié sans la WebPermission requise.

Le paramètre assemblyFile 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.

Notes

Le protocole de transfert de fichiers (FTP) 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 chargement contient les assemblys trouvés par sondage : dans le GAC, dans un magasin d’assemblys hôte si le runtime est hébergé, ou dans et ApplicationBasePrivateBinPath du domaine d’application. La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.

  • Le contexte de chargement à partir de contient des assemblys pour lesquels l’utilisateur a fourni un chemin d’accès non inclus dans les répertoires recherchés par sondage. LoadFrom, CreateInstanceFrom et ExecuteAssembly sont des exemples de méthodes qui sont chargées via un chemin.

    Consultez <loadFromRemoteSources> pour le chargement d’assemblys à partir d’emplacements distants.

  • Le contexte de réflexion uniquement contient des assemblys chargés avec les ReflectionOnlyLoad méthodes et ReflectionOnlyLoadFrom ; le code dans ces contextes ne peut pas être exécuté.

  • Si l’utilisateur a généré ou trouvé l’assembly, il ne se trouve dans aucun contexte. 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, ainsi qu’aux assemblys dynamiques temporaires créés avec l’émission de réflexion et non enregistrés sur le disque.

Le contexte de chargement à partir de permet de charger un assembly à partir d’un chemin d’accès qui n’est pas inclus dans l’analyse, et permet néanmoins de rechercher et de charger des dépendances sur ce chemin, 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 autre chemin a été spécifié.

  • Si un assembly est chargé avec LoadFromet qu’un assembly dans le contexte de chargement tente ultérieurement de charger le même assembly par nom d’affichage, la tentative de chargement échoue. Ceci peut se produire quand un assembly est désérialisé.

  • Si un assembly est chargé avec LoadFrom, et que le chemin d’exploration inclut un assembly avec la même identité, mais qu’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.

L'octroi ou non de certaines autorisations à un assembly repose sur la preuve. 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, les éléments de preuve sont fusionnés. Les éléments de preuve fournis comme 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 un FileLoadException , car l’égalité et l’intégrité des différentes spécifications de preuves ne peuvent pas être déterminées. La preuve qu’elle réussit en premier est la preuve utilisée.

  • Lorsque vous utilisez une LoadFrom méthode avec un Byte[] paramètre pour charger une image au format de fichier objet commun (COFF), les preuves sont combinées. Zone, Url et Site sont hérités de l’assembly appelant, et Hash et StrongName sont extraits de l’assembly COFF.

  • Lorsque vous utilisez une LoadFrom méthode avec un Byte[] paramètre et Evidence pour charger une image COFF, seule la preuve fournie est utilisée. La preuve de l’assembly appelant et la preuve de l’image COFF sont ignorées.

Voir aussi

S’applique à