Assembly.Load Méthode

Définition

Charge un assembly.

Surcharges

Load(Byte[], Byte[], SecurityContextSource)

Charge l'assembly avec une image COFF (Common Object File Format) contenant un assembly émis qui inclut éventuellement des symboles et qui spécifie la source du contexte de sécurité. L'assembly est chargé dans le domaine d'application de l'appelant.

Load(Byte[], Byte[], Evidence)
Obsolète.
Obsolète.

Charge l'assembly avec une image COFF (Common Object File Format) contenant un assembly émis qui inclut éventuellement des symboles et des preuves de l'assembly. L'assembly est chargé dans le domaine d'application de l'appelant.

Load(String, Evidence)
Obsolète.
Obsolète.

Charge un assembly en fonction de son nom complet, en le chargeant dans le domaine de l'appelant à l'aide de la preuve fournie.

Load(AssemblyName, Evidence)
Obsolète.
Obsolète.

Charge un assembly en fonction de son AssemblyName. L'assembly est chargé dans le domaine de l'appelant à l'aide de la preuve fournie.

Load(Byte[])

Charge l'assembly avec une image au format COFF (Common Object File Format) contenant un assembly émis. L'assembly est chargé dans le domaine d'application de l'appelant.

Load(String)

Charge un assembly portant le nom spécifié.

Load(AssemblyName)

Charge un assembly en fonction de son AssemblyName.

Load(Byte[], Byte[])

Charge l'assembly avec une image COFF (Common Object File Format) contenant un assembly émis qui inclut éventuellement des symboles de l'assembly. L'assembly est chargé dans le domaine d'application de l'appelant.

Load(Byte[], Byte[], SecurityContextSource)

Charge l'assembly avec une image COFF (Common Object File Format) contenant un assembly émis qui inclut éventuellement des symboles et qui spécifie la source du contexte de sécurité. L'assembly est chargé dans le domaine d'application de l'appelant.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore, System::Security::SecurityContextSource securityContextSource);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.SecurityContextSource securityContextSource);
static member Load : byte[] * byte[] * System.Security.SecurityContextSource -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityContextSource As SecurityContextSource) As Assembly

Paramètres

rawAssembly
Byte[]

Tableau d'octets qui est une image au format COFF contenant un assembly émis.

rawSymbolStore
Byte[]

Tableau d'octets qui contient les octets bruts représentant les symboles de l'assembly.

securityContextSource
SecurityContextSource

Source du contexte de sécurité.

Retours

Assembly

Assembly chargé.

Exceptions

rawAssembly a la valeur null.

rawAssembly n’est pas un assembly valide.

  • ou -

rawAssembly a été compilé avec une version du Common Language Runtime ultérieure à la version actuellement chargée.

La valeur de securityContextSource n’est pas l’une des valeurs d’énumération.

Remarques

L’assembly est chargé dans le domaine d’application de l’appelant à l’aide de la source spécifiée pour le contexte de sécurité. Si rawSymbolStore a été spécifié, les octets bruts représentant les symboles de l’assembly sont également chargés.

S’applique à

Load(Byte[], Byte[], Evidence)

Attention

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load 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 l'assembly avec une image COFF (Common Object File Format) contenant un assembly émis qui inclut éventuellement des symboles et des preuves de l'assembly. L'assembly est chargé dans le domaine d'application de l'appelant.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, 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 Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
[System.Obsolete]
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
static member Load : byte[] * byte[] * 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 Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityEvidence As Evidence) As Assembly

Paramètres

rawAssembly
Byte[]

Tableau d'octets qui est une image au format COFF contenant un assembly émis.

rawSymbolStore
Byte[]

Tableau d'octets qui contient les octets bruts représentant les symboles de l'assembly.

securityEvidence
Evidence

Preuve de chargement de l'assembly.

Retours

Assembly

Assembly chargé.

Attributs

Exceptions

rawAssembly a la valeur null.

rawAssembly n’est pas un assembly valide.

  • ou -

La version 2.0 ou ultérieure du Common Language Runtime est actuellement chargée et rawAssembly a été compilé avec une version ultérieure.

Un assembly ou un module a été chargé à deux reprises avec deux preuves différentes.

securityEvidence n’est pas un null. par défaut, la stratégie CAS héritée n’est pas activée dans le .NET Framework 4 ; Lorsque cette option n’est pas activée, securityEvidence doit être null .

Remarques

L'assembly est chargé dans le domaine de l'appelant à l'aide de la preuve fournie. Les octets bruts représentant les symboles de l’assembly sont également chargés.

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 Load méthode sans Evidence paramètre, l’assembly est chargé avec la preuve fournie par le chargeur.

  • Lorsque vous utilisez une Load méthode avec un Evidence paramètre, les éléments de preuve sont fusionnés. Les éléments de preuve fournis comme argument à la Load méthode remplacent les éléments de preuve fournis par le chargeur.

  • Quand vous utilisez une Load surcharge de méthode avec un Byte[] paramètre pour charger une image COFF, la preuve est héritée de l’assembly appelant. cela s’applique au .NET Framework version 1,1 Service Pack 1 (SP1) et aux versions ultérieures.

    Notes

    dans le .NET Framework version 1,0 et dans la version 1,1 sans SP1, lorsque vous utilisez une Load surcharge de méthode avec un Byte[] paramètre pour charger une image COFF, la preuve est combinée. Zone, Url et Site sont hérités de l’assembly appelant, et Hash StrongName sont extraits de l’assembly COFF.

  • Lorsque vous utilisez une Load 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.

La réflexion sur des fichiers exécutables C++ peut lever une BadImageFormatException . Cela est probablement dû au fait que le compilateur C++ élimine les adresses de réadressage ou la .reloc section de votre fichier exécutable. Pour conserver l' .reloc adresse de votre fichier exécutable C++, spécifiez /fixed:no quand vous établissez une liaison.

Si vous appelez la Load 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.

Notez que cette surcharge de méthode crée toujours un nouvel Assembly objet avec son propre mappage.

S’applique à

Load(String, Evidence)

Attention

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load 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 complet, en le chargeant dans le domaine de l'appelant à l'aide de la preuve fournie.

public:
 static System::Reflection::Assembly ^ Load(System::String ^ assemblyString, System::Security::Policy::Evidence ^ assemblySecurity);
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete]
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
static member Load : 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 Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String, assemblySecurity As Evidence) As Assembly

Paramètres

assemblyString
String

Nom complet de l'assembly.

assemblySecurity
Evidence

Preuve de chargement de l'assembly.

Retours

Assembly

Assembly chargé.

Attributs

Exceptions

assemblyString a la valeur null.

assemblyString est introuvable.

assemblyString n’est pas un assembly valide.

  • ou -

La version 2.0 ou ultérieure du Common Language Runtime est actuellement chargée et assemblyString a été compilé avec une version ultérieure.

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

  • ou -

Un assembly ou un module a été chargé à deux reprises avec deux preuves différentes.

Remarques

FileLoadException est levée si assemblyString spécifie le nom complet de l’assembly et que le premier assembly qui correspond au nom simple a une version, une culture ou un jeton de clé publique différent. Le chargeur ne poursuit pas la détection d’autres assemblys qui correspondent au nom simple.

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 Load méthode sans Evidence paramètre, l’assembly est chargé avec la preuve fournie par le chargeur.

  • Lorsque vous utilisez une Load méthode avec un Evidence paramètre, les éléments de preuve sont fusionnés. Les éléments de preuve fournis comme argument à la Load méthode remplacent les éléments de preuve fournis par le chargeur.

  • Quand vous utilisez une Load surcharge de méthode avec un Byte[] paramètre pour charger une image COFF (Common Object File Format), la preuve est héritée de l’assembly appelant. cela s’applique au .NET Framework version 1,1 Service Pack 1 (SP1) et aux versions ultérieures.

    Notes

    dans le .NET Framework version 1,0 et dans la version 1,1 sans SP1, lorsque vous utilisez une Load surcharge de méthode avec un Byte[] paramètre pour charger une image COFF, la preuve est combinée. Zone, Url et Site sont hérités de l’assembly appelant, et Hash StrongName sont extraits de l’assembly COFF.

  • Lorsque vous utilisez une Load 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.

La réflexion sur des fichiers exécutables C++ peut lever une BadImageFormatException . Cela est probablement dû au fait que le compilateur C++ élimine les adresses de réadressage ou la .reloc section de votre fichier exécutable. Pour conserver l' .reloc adresse de votre fichier exécutable C++, spécifiez /fixed:no quand vous établissez une liaison.

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.

dans le .NET Framework version 2,0, architecture du processeur est ajouté à l’identité de l’assembly et peut être spécifié dans le cadre des chaînes de nom d’assembly. Par exemple, « ProcessorArchitecture = MSIL ». Toutefois, la méthode recommandée pour spécifier un nom d’assembly consiste à créer un AssemblyName objet et à le passer à une surcharge appropriée de la Load méthode. Consultez AssemblyName.ProcessorArchitecture.

Voir aussi

S’applique à

Load(AssemblyName, Evidence)

Attention

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load 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 AssemblyName. L'assembly est chargé dans le domaine de l'appelant à l'aide de la preuve fournie.

public:
 static System::Reflection::Assembly ^ Load(System::Reflection::AssemblyName ^ assemblyRef, System::Security::Policy::Evidence ^ assemblySecurity);
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete]
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
static member Load : System.Reflection.AssemblyName * 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 Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyRef As AssemblyName, assemblySecurity As Evidence) As Assembly

Paramètres

assemblyRef
AssemblyName

Objet qui décrit l'assembly à charger.

assemblySecurity
Evidence

Preuve de chargement de l'assembly.

Retours

Assembly

Assembly chargé.

Attributs

Exceptions

assemblyRef a la valeur null.

assemblyRef est introuvable.

assemblyRef n’est pas un assembly valide.

  • ou -

La version 2.0 ou ultérieure du Common Language Runtime est actuellement chargée et assemblyRef a été compilé avec une version ultérieure.

Un assembly ou un module a été chargé à deux reprises avec deux preuves différentes.

  • ou -

assemblyRef spécifie un assembly distant, mais la possibilité d’exécuter du code dans des assemblys distants est désactivée. Consultez <loadFromRemoteSources>.

Remarques

FileLoadException est levée si assemblyRef spécifie le nom complet de l’assembly et que le premier assembly qui correspond au nom simple a une version, une culture ou un jeton de clé publique différent. Le chargeur ne poursuit pas la détection d’autres assemblys qui correspondent au nom simple. à partir de .NET Framework 4, étant donné que l’exécution du code dans les assemblys distants est désactivée par défaut, une FileLoadException est également levée si assemblyRef spécifie un assembly distant. Pour permettre l’exécution de code chargé à partir d’emplacements distants, vous pouvez utiliser l' <loadFromRemoteSources> élément de configuration.

Notes

N’utilisez pas un AssemblyName avec le CodeBase jeu de propriétés uniquement. La CodeBase propriété ne fournit aucun élément de l’identité de l’assembly (nom ou version). par conséquent, le chargement ne se produit pas conformément aux règles de chargement par identité, comme vous le feriez pour la Load méthode. Au lieu de cela, l’assembly est chargé à l’aide de règles de chargement à partir de. Pour plus d’informations sur les inconvénients liés à l’utilisation du contexte de chargement à partir de, consultez la Assembly.LoadFrom surcharge de méthode ou meilleures pratiques pour le chargement d’assembly.

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 Load méthode sans Evidence paramètre, l’assembly est chargé avec la preuve fournie par le chargeur.

  • Lorsque vous utilisez une Load méthode avec un Evidence paramètre, les éléments de preuve sont fusionnés. Les éléments de preuve fournis comme argument à la Load méthode remplacent les éléments de preuve fournis par le chargeur.

  • Quand vous utilisez une Load surcharge de méthode avec un Byte[] paramètre pour charger une image COFF (Common Object File Format), la preuve est héritée de l’assembly appelant. cela s’applique au .NET Framework version 1,1 Service Pack 1 (SP1) et aux versions ultérieures.

    Notes

    dans le .NET Framework version 1,0 et dans la version 1,1 sans SP1, lorsque vous utilisez une Load surcharge de méthode avec un Byte[] paramètre pour charger une image COFF, la preuve est combinée. Zone, Url et Site sont hérités de l’assembly appelant, et Hash StrongName sont extraits de l’assembly COFF.

  • Lorsque vous utilisez une Load 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.

La réflexion sur des fichiers exécutables C++ peut lever une BadImageFormatException . Cela est probablement dû au fait que le compilateur C++ élimine les adresses de réadressage ou la .reloc section de votre fichier exécutable. Pour conserver l' .reloc adresse de votre fichier exécutable C++, spécifiez /fixed:no quand vous établissez une liaison.

Notes

Si la AssemblyName.Name propriété et la propriété sont toutes les deux AssemblyName.CodeBase définies, la première tentative de chargement de l’assembly utilise le nom complet (y compris la version, la culture, et ainsi de suite, comme retourné par la Assembly.FullName propriété). Si le fichier est introuvable, CodeBase est utilisé pour Rechercher l’assembly. Si l’assembly est trouvé à l’aide CodeBase de, le nom complet est mis en correspondance avec l’assembly. Si la correspondance échoue, une FileLoadException exception est levée.

Si vous appelez la Load 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.

Voir aussi

S’applique à

Load(Byte[])

Charge l'assembly avec une image au format COFF (Common Object File Format) contenant un assembly émis. L'assembly est chargé dans le domaine d'application de l'appelant.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly);
public static System.Reflection.Assembly Load (byte[] rawAssembly);
static member Load : byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte()) As Assembly

Paramètres

rawAssembly
Byte[]

Tableau d'octets qui est une image au format COFF contenant un assembly émis.

Retours

Assembly

Assembly chargé.

Exceptions

rawAssembly a la valeur null.

rawAssembly n’est pas un assembly valide.

  • ou -

La version 2.0 ou ultérieure du Common Language Runtime est actuellement chargée et rawAssembly a été compilé avec une version ultérieure.

Remarques

Le niveau de confiance d’un assembly qui est chargé à l’aide de cette méthode est le même que le niveau de confiance de l’assembly appelant. Pour charger un assembly à partir d’un tableau d’octets avec le niveau de confiance du domaine d’application, utilisez la Load(Byte[], Byte[], SecurityContextSource) surcharge de méthode. Pour plus d’informations sur l’utilisation de la preuve avec les surcharges de la Load méthode qui acceptent des tableaux d’octets, consultez la Load(Byte[], Byte[], Evidence) surcharge de méthode.

La réflexion sur des fichiers exécutables C++ peut lever une BadImageFormatException . Cela est probablement dû au fait que le compilateur C++ élimine les adresses de réadressage ou la .reloc section de votre fichier exécutable. Pour conserver l' .reloc adresse de votre fichier exécutable C++, spécifiez /fixed:no quand vous établissez une liaison.

Notez que cette surcharge de méthode crée toujours un nouvel Assembly objet avec son propre mappage.

S’applique à

Load(String)

Charge un assembly portant le nom spécifié.

public:
 static System::Reflection::Assembly ^ Load(System::String ^ assemblyString);
public static System.Reflection.Assembly Load (string assemblyString);
static member Load : string -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String) As Assembly

Paramètres

assemblyString
String

Forme longue ou courte du nom d’assembly.

Retours

Assembly

Assembly chargé.

Exceptions

assemblyString a la valeur null.

assemblyString est une chaîne de longueur nulle.

assemblyString est introuvable.

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

assemblyString n’est pas un assembly valide.

  • ou -

La version 2.0 ou ultérieure du Common Language Runtime est actuellement chargée et assemblyString a été compilé avec une version ultérieure.

Exemples

L’exemple suivant charge un assembly en fonction de son nom qualifié complet et répertorie tous les types contenus dans l’assembly spécifié. Pour plus d’informations sur la façon d’obtenir le nom complet de l’assembly, consultez noms d’assemblys.

using namespace System;
using namespace System::Collections;
using namespace System::Reflection;
int main()
{
    // You must supply a valid fully qualified assembly name.            
    Assembly^ SampleAssembly = Assembly::Load
        ( "SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3" );
    array<Type^>^ Types = SampleAssembly->GetTypes();
    
    // Display all the types contained in the specified assembly.
    IEnumerator^ myEnum = Types->GetEnumerator();
    Type^ oType;
    while ( myEnum->MoveNext() )
    {
        oType = safe_cast<Type^>(myEnum->Current);
        Console::WriteLine( oType->Name );
    }
}
using System;
using System.Reflection;

class Class1
{
    public static void Main()
    {
        // You must supply a valid fully qualified assembly name.
        Assembly SampleAssembly = Assembly.Load
            ("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");
        // Display all the types contained in the specified assembly.
        foreach (Type oType in SampleAssembly.GetTypes()) {
            Console.WriteLine(oType.Name);
        }
    }
}
Imports System.Reflection

Class Class1
    Public Shared Sub Main()
        ' You must supply a valid fully qualified assembly name.            
        Dim SampleAssembly As [Assembly] = _
            [Assembly].Load("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3")
        Dim oType As Type
        ' Display all the types contained in the specified assembly.
        For Each oType In SampleAssembly.GetTypes()
            Console.WriteLine(oType.Name)
        Next oType
    End Sub	'LoadSample
End Class

Remarques

Pour charger l’assembly correct, il est recommandé d’appeler la Load méthode en passant la forme longue du nom de l’assembly. La forme longue d’un nom d’assembly se compose de son nom simple (tel que « système » pour l’assembly System.dll), ainsi que de sa version, de sa culture, de son jeton de clé publique et éventuellement de son architecture de processeur. Elle correspond à la propriété de l’assembly FullName . l’exemple suivant illustre l’utilisation d’un nom long pour charger l’assembly System.dll pour le .NET Framework 4 :

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      string longName = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
      Assembly assem = Assembly.Load(longName);
      if (assem == null)
         Console.WriteLine("Unable to load assembly...");
      else
         Console.WriteLine(assem.FullName);
   }
}
// The example displays the following output:
//        system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Imports System.Reflection

Module Example
   Public Sub Main()
      Dim longName As String = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
      Dim assem As Assembly = Assembly.Load(longName)
      If assem Is Nothing Then
         Console.WriteLine("Unable to load assembly...")
      Else
         Console.WriteLine(assem.FullName)
      End If
   End Sub
End Module
' The example displays the following output:
'       system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

FileLoadException est levée si assemblyString spécifie le nom complet de l’assembly et que le premier assembly qui correspond au nom simple a une version, une culture ou un jeton de clé publique différent. Le chargeur ne poursuit pas la détection d’autres assemblys qui correspondent au nom simple.

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 Load méthode sans Evidence paramètre, l’assembly est chargé avec la preuve fournie par le chargeur.

  • Lorsque vous utilisez une Load méthode avec un Evidence paramètre, les éléments de preuve sont fusionnés. Les éléments de preuve fournis comme argument à la Load méthode remplacent les éléments de preuve fournis par le chargeur.

  • Quand vous utilisez une Load surcharge de méthode avec un Byte[] paramètre pour charger une image COFF (Common Object File Format), la preuve est héritée de l’assembly appelant. cela s’applique au .NET Framework version 1,1 Service Pack 1 (SP1) et aux versions ultérieures.

    Notes

    dans le .NET Framework version 1,0 et dans la version 1,1 sans SP1, lorsque vous utilisez une Load surcharge de méthode avec un Byte[] paramètre pour charger une image COFF, la preuve est combinée. Zone, Url et Site sont hérités de l’assembly appelant, et Hash StrongName sont extraits de l’assembly COFF.

  • Lorsque vous utilisez une Load 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.

La réflexion sur des fichiers exécutables C++ peut lever une BadImageFormatException . Cela est probablement dû au fait que le compilateur C++ élimine les adresses de réadressage ou la .reloc section de votre fichier exécutable. Pour conserver l' .reloc adresse de votre fichier exécutable C++, spécifiez /fixed:no quand vous établissez une liaison.

dans le .NET Framework version 2,0, architecture du processeur est ajouté à l’identité de l’assembly et peut être spécifié dans le cadre des chaînes de nom d’assembly. Par exemple, « ProcessorArchitecture = MSIL ». Toutefois, la méthode recommandée pour spécifier un nom d’assembly consiste à créer un AssemblyName objet et à le passer à une surcharge appropriée de la Load méthode. Consultez AssemblyName.ProcessorArchitecture.

Voir aussi

S’applique à

Load(AssemblyName)

Charge un assembly en fonction de son AssemblyName.

public:
 static System::Reflection::Assembly ^ Load(System::Reflection::AssemblyName ^ assemblyRef);
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef);
static member Load : System.Reflection.AssemblyName -> System.Reflection.Assembly
Public Shared Function Load (assemblyRef As AssemblyName) As Assembly

Paramètres

assemblyRef
AssemblyName

Objet qui décrit l'assembly à charger.

Retours

Assembly

Assembly chargé.

Exceptions

assemblyRef a la valeur null.

assemblyRef est introuvable.

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

  • ou -

assemblyRef spécifie un assembly distant, mais la possibilité d’exécuter du code dans des assemblys distants est désactivée. Consultez <loadFromRemoteSources>.

remarque : dans .net pour les applications du windows Store Windows ou la bibliothèque de classes Portable, interceptez l’exception de la classe de base,, à la IOException place.

assemblyRef n’est pas un assembly valide. - ou -

La version 2.0 ou ultérieure du Common Language Runtime est actuellement chargée et assemblyRef a été compilé avec une version ultérieure.

Exemples

L’exemple suivant instancie un AssemblyName objet et l’utilise pour charger l' sysglobal.dll assembly. L’exemple affiche ensuite le nom complet des types publics de l’assembly.

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      String fullName = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
                        "PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL";
      var an = new AssemblyName(fullName);
      var assem = Assembly.Load(an);
      Console.WriteLine("Public types in assembly {0}:", assem.FullName);
      foreach (var t in assem.GetTypes())
         if (t.IsPublic)
            Console.WriteLine("   {0}", t.FullName);
   }
}
// The example displays the following output:
//   Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
//      System.Globalization.CultureAndRegionInfoBuilder
//      System.Globalization.CultureAndRegionModifiers
Imports System.Reflection

Module Example
   Public Sub Main()
      Dim fullName As String = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
                               "PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL"
      Dim an As New AssemblyName(fullName)
      Dim assem As Assembly = Assembly.Load(an)
      Console.WriteLine("Public types in assembly {0}:", assem.FullName)
      For Each t As Type in assem.GetTypes()
         If t.IsPublic Then Console.WriteLine("   {0}", t.FullName)
      Next
   End Sub
End Module
' The example displays the following output:
'   Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
'      System.Globalization.CultureAndRegionInfoBuilder
'      System.Globalization.CultureAndRegionModifiers

Remarques

FileLoadException est levée si assemblyRef spécifie le nom complet de l’assembly et que le premier assembly qui correspond au nom simple a une version, une culture ou un jeton de clé publique différent. Le chargeur ne poursuit pas la détection d’autres assemblys qui correspondent au nom simple. à partir de .NET Framework 4, étant donné que l’exécution du code dans les assemblys distants est désactivée par défaut, une FileLoadException est également levée si assemblyRef spécifie un assembly distant. Pour permettre l’exécution de code chargé à partir d’emplacements distants, vous pouvez utiliser l' <loadFromRemoteSources> élément de configuration.

Notes

N’utilisez pas un AssemblyName avec le CodeBase jeu de propriétés uniquement. La CodeBase propriété ne fournit aucun élément de l’identité de l’assembly (nom ou version). par conséquent, le chargement ne se produit pas conformément aux règles de chargement par identité, comme vous le feriez pour la Load méthode. Au lieu de cela, l’assembly est chargé à l’aide de règles de chargement à partir de. Pour plus d’informations sur les inconvénients liés à l’utilisation du contexte de chargement à partir de, consultez la Assembly.LoadFrom surcharge de méthode ou meilleures pratiques pour le chargement d’assembly.

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 Load méthode sans Evidence paramètre, l’assembly est chargé avec la preuve fournie par le chargeur.

  • Lorsque vous utilisez une Load méthode avec un Evidence paramètre, les éléments de preuve sont fusionnés. Les éléments de preuve fournis comme argument à la Load méthode remplacent les éléments de preuve fournis par le chargeur.

  • Quand vous utilisez une Load surcharge de méthode avec un Byte[] paramètre pour charger une image COFF (Common Object File Format), la preuve est héritée de l’assembly appelant. cela s’applique au .NET Framework version 1,1 Service Pack 1 (SP1) et aux versions ultérieures.

    Notes

    dans le .NET Framework version 1,0 et dans la version 1,1 sans SP1, lorsque vous utilisez une Load surcharge de méthode avec un Byte[] paramètre pour charger une image COFF, la preuve est combinée. Zone, Url et Site sont hérités de l’assembly appelant, et Hash StrongName sont extraits de l’assembly COFF.

  • Lorsque vous utilisez une Load 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.

La réflexion sur des fichiers exécutables C++ peut lever une BadImageFormatException . Cela est probablement dû au fait que le compilateur C++ élimine les adresses de réadressage ou la .reloc section de votre fichier exécutable. Pour conserver l' .reloc adresse de votre fichier exécutable C++, spécifiez /fixed:no quand vous établissez une liaison.

Notes

Si la AssemblyName.Name propriété et la propriété sont toutes les deux AssemblyName.CodeBase définies, la première tentative de chargement de l’assembly utilise le nom complet (y compris la version, la culture, et ainsi de suite, comme retourné par la Assembly.FullName propriété). Si le fichier est introuvable, CodeBase est utilisé pour Rechercher l’assembly. Si l’assembly est trouvé à l’aide CodeBase de, le nom complet est mis en correspondance avec l’assembly. Si la correspondance échoue, une FileLoadException exception est levée.

Voir aussi

S’applique à

Load(Byte[], Byte[])

Charge l'assembly avec une image COFF (Common Object File Format) contenant un assembly émis qui inclut éventuellement des symboles de l'assembly. L'assembly est chargé dans le domaine d'application de l'appelant.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[]? rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore);
static member Load : byte[] * byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte()) As Assembly

Paramètres

rawAssembly
Byte[]

Tableau d'octets qui est une image au format COFF contenant un assembly émis.

rawSymbolStore
Byte[]

Tableau d'octets qui contient les octets bruts représentant les symboles de l'assembly.

Retours

Assembly

Assembly chargé.

Exceptions

rawAssembly a la valeur null.

rawAssembly n’est pas un assembly valide.

  • ou -

La version 2.0 ou ultérieure du Common Language Runtime est actuellement chargée et rawAssembly a été compilé avec une version ultérieure.

Remarques

Le niveau de confiance d’un assembly qui est chargé à l’aide de cette méthode est le même que le niveau de confiance de l’assembly appelant. Pour charger un assembly à partir d’un tableau d’octets avec le niveau de confiance du domaine d’application, utilisez la Load(Byte[], Byte[], SecurityContextSource) surcharge de méthode. Pour plus d’informations sur l’utilisation de la preuve avec les surcharges de la Load méthode qui acceptent des tableaux d’octets, consultez la Load(Byte[], Byte[], Evidence) surcharge de méthode.

La réflexion sur des fichiers exécutables C++ peut lever une BadImageFormatException . Cela est probablement dû au fait que le compilateur C++ élimine les adresses de réadressage ou la .reloc section de votre fichier exécutable. Pour conserver l' .reloc adresse de votre fichier exécutable C++, spécifiez /fixed:no quand vous établissez une liaison.

Notez que cette surcharge de méthode crée toujours un nouvel Assembly objet avec son propre mappage.

S’applique à