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

À compter de .NET Framework 4, la possibilité d’exécuter du code dans des assemblys chargés à partir d’emplacements distants est désactivée par défaut, et l’appel à la LoadFrom méthode lève un FileLoadException. Pour charger l’assembly et exécuter son code, vous devez :

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 -

La possibilité d’exécuter du code dans des assemblys distants est désactivée. Consultez <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 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 chargement contient des 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.

    À compter de .NET Framework 4, si l’URI de assemblyFile spécifie un emplacement distant, le chargement de l’assembly est désactivé par défaut et la LoadFrom méthode lève un FileLoadException. Pour activer l’exécution du code chargé à partir d’emplacements distants, vous pouvez utiliser l’élément de <loadFromRemoteSources> configuration.

  • 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 n’est 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 à un assembly d’être chargé à partir d’un chemin d’accès non inclus dans le sondage, tout en permettant de rechercher et de charger des dépendances sur ce chemin, car les informations de chemin 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’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é.

  • S’il existe une image native 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 à 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 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 en premier 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, 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’assemblée appelante 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

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 -

La possibilité d’exécuter du code dans des assemblys distants est désactivée. Consultez <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 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 chargement contient des 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.

    À compter de .NET Framework 4, si l’URI de assemblyFile spécifie un emplacement distant, le chargement de l’assembly est désactivé par défaut et la LoadFrom méthode lève un FileLoadException. Pour activer l’exécution du code chargé à partir d’emplacements distants, vous pouvez utiliser l’élément de <loadFromRemoteSources> configuration.

  • 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 n’est 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 qui n’est pas inclus dans le sondage, tout en permettant de rechercher et de charger des dépendances sur ce chemin, car les informations de chemin 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’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é.

  • S’il existe une image native 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 -

La possibilité d’exécuter du code dans des assemblys distants est désactivée. Consultez <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 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 chargement contient des 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.

    À compter de .NET Framework 4, si l’URI de assemblyFile spécifie un emplacement distant, le chargement de l’assembly est désactivé par défaut et la LoadFrom méthode lève un FileLoadException. Pour activer l’exécution du code chargé à partir d’emplacements distants, vous pouvez utiliser l’élément de <loadFromRemoteSources> configuration.

  • 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 n’est 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 à un assembly d’être chargé à partir d’un chemin d’accès non inclus dans le sondage, tout en permettant de rechercher et de charger des dépendances sur ce chemin, car les informations de chemin 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é 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 de même qu’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 tout autre comportement inattendu.

  • L’appel LoadFrom avec un emplacement qui se trouve dans le chemin d’accès de sondage 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é à LoadFrom, la stratégie est appliquée et l’assembly est chargé à partir du chemin d’accès de sondage dans le contexte de chargement.

  • Si un assembly est chargé dans le contexte de chargement à partir de et 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é.

  • LoadFrom demande FileIOPermissionAccess.Read et FileIOPermissionAccess.PathDiscovery, ou WebPermission, sur le chemin spécifié.

  • S’il existe une image native 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 -

La possibilité d’exécuter du code dans des assemblys distants est désactivée. Consultez <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 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 chargement contient des 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.

    À compter de .NET Framework 4, si l’URI de assemblyFile spécifie un emplacement distant, le chargement de l’assembly est désactivé par défaut et la LoadFrom méthode lève un FileLoadException. Pour activer l’exécution du code chargé à partir d’emplacements distants, vous pouvez utiliser l’élément de <loadFromRemoteSources> configuration.

  • 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 n’est 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 à un assembly d’être chargé à partir d’un chemin d’accès non inclus dans le sondage, tout en permettant de rechercher et de charger des dépendances sur ce chemin, car les informations de chemin 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’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é.

  • S’il existe une image native 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 à 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 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 en premier 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, 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’assemblée appelante et la preuve de l’image COFF sont ignorées.

Voir aussi

S’applique à