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
LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm) |
Obsolète.
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.
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
à partir de .NET Framework 4, la possibilité d’exécuter du code dans les assemblys chargés à partir d’emplacements distants est désactivée par défaut, et l’appel à la LoadFrom
méthode lève une FileLoadException . Pour charger l’assembly et exécuter son code, vous devez :
Créez explicitement un bac à sable (sandbox) pour l’assembly. (Consultez Comment : exécuter du code d’un degré de confiance partiel dans un bac à sable (sandbox).)
Exécutez le code de l’assembly en confiance totale en affectant
enabled
à l’attribut de l'<loadFromRemoteSources>
élément de configuration la valeurtrue
. Pour plus d’informations, consultez l’article Configuration de l'<loadFromRemoteSources>
élément .
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.
Attention
Cette API est à présent déconseillée.
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);
[System.Obsolete]
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
[<System.Obsolete>]
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 ; par exemple, un assembly 32 bits dans un processus 64 bits. Pour plus d’informations, consultez la rubrique sur les exceptions.
- ou -
La version 2.0 ou ultérieure du Common Language Runtime est actuellement chargée et assemblyFile
a été compilé avec une version ultérieure.
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ère 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, et l’assembly est chargé dans le domaine de l’appelant.
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 la détection : dans le GAC, dans un magasin d’assemblys de l’hôte si le runtime est hébergé, ou dans ApplicationBase et PrivateBinPath du domaine d’application. La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.
Le contexte Load-from 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, CreateInstanceFrom et ExecuteAssembly sont des exemples de méthodes qui sont chargées via un chemin.
à partir 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 laLoadFrom
méthode lève une exception FileLoadException . Pour permettre l’exécution de code chargé à partir d’emplacements distants, vous pouvez utiliser l'<loadFromRemoteSources>
élément de configuration.Le contexte de réflexion uniquement contient des assemblys chargés avec ReflectionOnlyLoad les ReflectionOnlyLoadFrom méthodes et ; le code de 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 et aux assemblys dynamiques transitoires créés avec l’émission de réflexion et non enregistrés sur le disque.
Le contexte Load-from permet de charger un assembly à partir d’un chemin d’accès non inclus dans la détection, tout en autorisant la recherche et le chargement des dépendances sur ce chemin d’accès, 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 LoadFrom , et que ultérieurement un assembly dans le contexte de chargement tente de charger le même assembly par son 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 comprend un assembly avec la même identité mais un emplacement différent, un, un InvalidCastException MissingMethodException ou tout 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 indépendant du domaine.dans le .NET Framework version 1,0 et 1,1, la stratégie n’est pas appliquée.
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 :
Quand vous utilisez une LoadFrom méthode sans Evidence paramètre, l’assembly est chargé avec la preuve fournie par le chargeur.
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 d’exception, 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 est exécutée en premier est celle qui est utilisée.
Quand 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
etSite
sont hérités de l’assembly appelant, etHash
StrongName
sont 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 la preuve de l’image COFF sont ignorées.
S’applique à
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.
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 ; par exemple, un assembly 32 bits dans un processus 64 bits. Pour plus d’informations, consultez la rubrique sur les exceptions.
- ou -
assemblyFile
a été compilé avec une version du Common Language Runtime ultérieure à la version actuellement chargée.
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ère 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, et l’assembly est chargé dans le domaine de l’appelant.
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 la détection : dans le Global Assembly Cache, dans un magasin d’assemblys de l’hôte si le runtime est hébergé, ou dans ApplicationBase et PrivateBinPath 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 qui n’est pas inclus dans la détection. LoadFrom, CreateInstanceFrom et ExecuteAssembly sont des exemples de méthodes qui sont chargées via un chemin.
à partir 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 laLoadFrom
méthode lève une exception FileLoadException . Pour permettre l’exécution de code chargé à partir d’emplacements distants, vous pouvez utiliser l'<loadFromRemoteSources>
élément de configuration.Le contexte de réflexion uniquement contient des assemblys chargés avec ReflectionOnlyLoad les ReflectionOnlyLoadFrom méthodes et ; le code de 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 et aux assemblys dynamiques transitoires créés avec l’émission de réflexion et non enregistrés sur le disque.
Le contexte de chargement permet de charger un assembly à partir d’un chemin d’accès qui n’est pas inclus dans la détection, tout en autorisant la recherche et le chargement des dépendances sur ce chemin d’accès, 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 LoadFrom , et que ultérieurement un assembly dans le contexte de chargement tente de charger le même assembly par son 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 comprend un assembly avec la même identité mais un emplacement différent, un, un InvalidCastException MissingMethodException ou tout 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 fournie par le chargeur.
S’applique à
LoadFrom(String)
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 ; par exemple, un assembly 32 bits dans un processus 64 bits. Pour plus d’informations, consultez la rubrique sur les exceptions.
- ou -
La version 2.0 ou ultérieure du Common Language Runtime est actuellement chargée et assemblyFile
a été compilé avec une version ultérieure.
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ère 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, et l’assembly est chargé dans le domaine de l’appelant.
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 la détection : dans le GAC, dans un magasin d’assemblys de l’hôte si le runtime est hébergé, ou dans ApplicationBase et PrivateBinPath du domaine d’application. La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.
Le contexte Load-from 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, CreateInstanceFrom et ExecuteAssembly sont des exemples de méthodes qui sont chargées via un chemin.
à partir 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 laLoadFrom
méthode lève une exception FileLoadException . Pour permettre l’exécution de code chargé à partir d’emplacements distants, vous pouvez utiliser l'<loadFromRemoteSources>
élément de configuration.Le contexte de réflexion uniquement contient des assemblys chargés avec ReflectionOnlyLoad les ReflectionOnlyLoadFrom méthodes et ; le code de 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 et aux assemblys dynamiques transitoires créés avec l’émission de réflexion et non enregistrés sur le disque.
Le contexte Load-from permet de charger un assembly à partir d’un chemin d’accès non inclus dans la détection, tout en autorisant la recherche et le chargement des dépendances sur ce chemin d’accès, 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 LoadFrom , et que ultérieurement un assembly dans le contexte de chargement tente de charger le même assembly par son nom d’affichage, la tentative de chargement échoue. Cela peut se produire lors de la désérialisation d’un assembly.
Si un assembly est chargé avec LoadFrom , et que le chemin d’accès de détection comprend un assembly avec la même identité mais un emplacement différent, un, un InvalidCastException MissingMethodException ou tout 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 indépendant du domaine.dans le .NET Framework version 1,0 et 1,1, la stratégie n’est pas appliquée.
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.
Attention
Cette API est à présent déconseillée.
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);
[System.Obsolete]
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
[<System.Obsolete>]
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 ; par exemple, un assembly 32 bits dans un processus 64 bits. Pour plus d’informations, consultez la rubrique sur les exceptions.
- ou -
La version 2.0 ou ultérieure du Common Language Runtime est actuellement chargée et assemblyFile
a été compilé avec une version ultérieure.
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ère 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, et l’assembly est chargé dans le domaine de l’appelant.
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 la détection : dans le GAC, dans un magasin d’assemblys de l’hôte si le runtime est hébergé, ou dans ApplicationBase et PrivateBinPath du domaine d’application. La plupart des surcharges de la méthode Load chargent les assemblys dans ce contexte.
Le contexte Load-from 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, CreateInstanceFrom et ExecuteAssembly sont des exemples de méthodes qui sont chargées via un chemin.
à partir 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 laLoadFrom
méthode lève une exception FileLoadException . Pour permettre l’exécution de code chargé à partir d’emplacements distants, vous pouvez utiliser l'<loadFromRemoteSources>
élément de configuration.Le contexte de réflexion uniquement contient des assemblys chargés avec ReflectionOnlyLoad les ReflectionOnlyLoadFrom méthodes et ; le code de 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 et aux assemblys dynamiques transitoires créés avec l’émission de réflexion et non enregistrés sur le disque.
Le contexte Load-from permet de charger un assembly à partir d’un chemin d’accès non inclus dans la détection, tout en autorisant la recherche et le chargement des dépendances sur ce chemin d’accès, 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 LoadFrom , et que ultérieurement un assembly dans le contexte de chargement tente de charger le même assembly par son 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 comprend un assembly avec la même identité mais un emplacement différent, un, un InvalidCastException MissingMethodException ou tout 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 indépendant du domaine.dans le .NET Framework version 1,0 et 1,1, la stratégie n’est pas appliquée.
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 :
Quand vous utilisez une LoadFrom méthode sans Evidence paramètre, l’assembly est chargé avec la preuve fournie par le chargeur.
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 d’exception, 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 est exécutée en premier est celle qui est utilisée.
Quand 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
etSite
sont hérités de l’assembly appelant, etHash
StrongName
sont 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 la preuve de l’image COFF sont ignorées.