Assembly.Load Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Laadt een assembly.
Overloads
| Name | Description |
|---|---|
| Load(AssemblyName) |
Laadt een assembly op basis van zijn AssemblyName. |
| Load(Byte[], Byte[], SecurityContextSource) |
Laadt de assembly met een op COFF gebaseerde installatiekopie (Common Object File Format) met een gegenereerde assembly, eventueel inclusief symbolen en het opgeven van de bron voor de beveiligingscontext. |
| Load(Byte[], Byte[], Evidence) |
Verouderd.
Laadt de assembly met een gemeenschappelijke objectbestandsindeling (COFF)-afbeelding met een verzonden assembly, eventueel inclusief symbolen en bewijs voor de assembly. |
| Load(String, Evidence) |
Verouderd.
Laadt een assembly op basis van de weergavenaam en het opgegeven bewijs. |
| Load(Byte[]) |
Laadt de assembly met een op COFF gebaseerde installatiekopie (Common Object File Format) die een verzonden assembly bevat. |
| Load(Byte[], Byte[]) |
Laadt de assembly met een op COFF gebaseerde installatiekopie (Common Object File Format) die een gegenereerde assembly bevat, eventueel inclusief symbolen voor de assembly. |
| Load(String) |
Laadt een assembly met de opgegeven naam. |
| Load(AssemblyName, Evidence) |
Verouderd.
Laadt een assembly op basis van zijn AssemblyName. De assembly wordt geladen met behulp van het verstrekte bewijs. |
Load(AssemblyName)
Laadt een assembly op basis van zijn 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
Parameters
- assemblyRef
- AssemblyName
Het object dat de assembly beschrijft die moet worden geladen.
Retouren
De geladen assembly.
Uitzonderingen
assemblyRef is null.
assemblyRef is niet gevonden.
Een gevonden bestand kan niet worden geladen.
– of –
alleen .NET Framework: assemblyRef geeft een locatie op die is uitgeschakeld op basis van <loadFromRemoteSources>.
Opmerking: In .NET voor Windows Store-apps of de Portable Class Library, haalt u in plaats daarvan de uitzondering van de basisklasse op, IOException.
assemblyRef is geen geldige assembly voor de momenteel geladen runtime.
Voorbeelden
In het volgende voorbeeld wordt een AssemblyName object geïnstitueert en gebruikt om de sysglobal.dll assembly te laden. In het voorbeeld wordt vervolgens de volledige naam van de openbare typen van de assembly weergegeven.
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
Opmerkingen
In .NET Core/.NET 5+ wordt de doelassembly geladen in de huidige AssemblyLoadContext of in de context AssemblyLoadContext.CurrentContextualReflectionContext als deze is ingesteld. Zie Het algoritme voor het laden van beheerde assembly's voor meer informatie over het laden van assembly's.
Note
alleen .NET Framework: Zie <loadFromRemoteSources> voor informatie over het laden van assembly's vanaf externe locaties.
Note
.NET Framework alleen: Gebruik geen AssemblyName met alleen de eigenschap CodeBase ingesteld. De CodeBase eigenschap levert geen elementen van de assembly-identiteit (zoals naam of versie), zodat laden niet plaatsvindt volgens regels voor laden per identiteit, zoals u zou verwachten van de Load methode. In plaats daarvan wordt de assembly geladen met behulp van regels voor laden vanuit. Zie de overbelasting van de Assembly.LoadFrom methode of aanbevolen procedures voor het laden van assembly's voor informatie over de nadelen van het gebruik van de load-from-context.
Note
.NET Framework alleen: Als zowel de eigenschap AssemblyName.Name als de eigenschap AssemblyName.CodeBase zijn ingesteld, gebruikt de eerste poging om de assembly te laden de weergavenaam (inclusief versie, cultuur, enzovoort, zoals geretourneerd door de eigenschap Assembly.FullName). Als het bestand niet wordt gevonden, CodeBase wordt gebruikt om naar de assembly te zoeken. Als de assembly wordt gevonden met behulp CodeBasevan, wordt de weergavenaam vergeleken met de assembly. Als de overeenkomst mislukt, wordt er een FileLoadException gegenereerd.
Zie ook
Van toepassing op
Load(Byte[], Byte[], SecurityContextSource)
Laadt de assembly met een op COFF gebaseerde installatiekopie (Common Object File Format) met een gegenereerde assembly, eventueel inclusief symbolen en het opgeven van de bron voor de beveiligingscontext.
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
Parameters
- rawAssembly
- Byte[]
Een bytematrix die een op COFF gebaseerde installatiekopie is die een gegenereerde assembly bevat.
- rawSymbolStore
- Byte[]
Een bytematrix die de onbewerkte bytes bevat die de symbolen voor de assembly vertegenwoordigen.
- securityContextSource
- SecurityContextSource
De bron van de beveiligingscontext.
Retouren
De geladen assembly.
Uitzonderingen
rawAssembly is null.
rawAssembly is geen geldige assembly voor de momenteel geladen runtime.
De waarde van securityContextSource is geen van de opsommingswaarden.
Opmerkingen
De assembly wordt geladen in het toepassingsdomein van de aanroeper met behulp van de opgegeven bron voor de beveiligingscontext. Als rawSymbolStore dit is opgegeven, worden de onbewerkte bytes die de symbolen voor de assembly vertegenwoordigen ook geladen.
Van toepassing op
Load(Byte[], Byte[], Evidence)
Let op
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.
Laadt de assembly met een gemeenschappelijke objectbestandsindeling (COFF)-afbeelding met een verzonden assembly, eventueel inclusief symbolen en bewijs voor de assembly.
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);
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
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityEvidence As Evidence) As Assembly
Parameters
- rawAssembly
- Byte[]
Een bytematrix die een op COFF gebaseerde installatiekopie is die een gegenereerde assembly bevat.
- rawSymbolStore
- Byte[]
Een bytematrix die de onbewerkte bytes bevat die de symbolen voor de assembly vertegenwoordigen.
- securityEvidence
- Evidence
Bewijs voor het laden van de assembly.
Retouren
De geladen assembly.
- Kenmerken
Uitzonderingen
rawAssembly is null.
rawAssembly is geen geldige assembly voor de momenteel geladen runtime.
Een assembly of module is tweemaal geladen met twee verschillende bewijzen.
securityEvidence is niet null. Verouderd CAS-beleid is standaard niet ingeschakeld in het .NET Framework 4. Als dit niet is ingeschakeld, moet securityEvidencenull zijn.
Opmerkingen
Deze methode overbelast maakt altijd een nieuw Assembly object in een eigen geïsoleerde belastingcontext.
De assembly wordt geladen met behulp van het verstrekte bewijs. De onbewerkte bytes die de symbolen voor de assembly vertegenwoordigen, worden ook geladen.
Of bepaalde machtigingen wel of niet aan een assembly worden verleend, is gebaseerd op bewijs. De regels voor het samenvoegen van assembly- en beveiligingsgegevens zijn als volgt:
Wanneer u een Load methode zonder Evidence parameter gebruikt, wordt de assembly geladen met het bewijs dat de laadlader levert.
Wanneer u een Load methode met een Evidence parameter gebruikt, worden stukken bewijs samengevoegd. Stukken bewijsmateriaal dat als argument aan de Load methode wordt verstrekt, vervangt stukken bewijsmateriaal dat door het laadprogramma wordt geleverd.
Wanneer u een overbelasting van een Load methode met een
Byte[]parameter gebruikt om een COFF-installatiekopie te laden, wordt bewijs overgenomen van de aanroepende assembly.Wanneer u een Load methode met een
Byte[]parameter gebruikt en Evidence een COFF-installatiekopie laadt, wordt alleen het opgegeven bewijs gebruikt. Bewijs van de aanroepende assembly en bewijs van de COFF-afbeelding wordt genegeerd.
Als u de Load methode meerdere keren aanroept op dezelfde assembly, maar met een ander opgegeven bewijs, genereert de algemene taalruntime niet een FileLoadException omdat de gelijkheid en integriteit van de verschillende bewijsspecificaties niet kunnen worden bepaald. Het bewijs dat het eerst slaagt, is het bewijs dat wordt gebruikt.
Van toepassing op
Load(String, Evidence)
Let op
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.
Laadt een assembly op basis van de weergavenaam en het opgegeven bewijs.
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);
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
Public Shared Function Load (assemblyString As String, assemblySecurity As Evidence) As Assembly
Parameters
- assemblyString
- String
De weergavenaam van de assembly.
- assemblySecurity
- Evidence
Bewijs voor het laden van de assembly.
Retouren
De geladen assembly.
- Kenmerken
Uitzonderingen
assemblyString is null.
assemblyString is niet gevonden.
assemblyString is geen geldige assembly voor de momenteel geladen runtime.
Een gevonden bestand kan niet worden geladen.
– of –
Een assembly of module is tweemaal geladen met twee verschillende bewijzen.
Opmerkingen
FileLoadException wordt gegenereerd als assemblyString de volledige assemblynaam wordt opgegeven en de eerste assembly die overeenkomt met de eenvoudige naam een andere versie, cultuur of openbare-sleuteltoken heeft. Het laadprogramma blijft niet zoeken naar andere assembly's die overeenkomen met de eenvoudige naam.
Of bepaalde machtigingen wel of niet aan een assembly worden verleend, is gebaseerd op bewijs. De regels voor het samenvoegen van assembly- en beveiligingsgegevens zijn als volgt:
Wanneer u een Load methode zonder Evidence parameter gebruikt, wordt de assembly geladen met het bewijs dat de laadlader levert.
Wanneer u een Load methode met een Evidence parameter gebruikt, worden stukken bewijs samengevoegd. Stukken bewijsmateriaal dat als argument aan de Load methode wordt verstrekt, vervangt stukken bewijsmateriaal dat door het laadprogramma wordt geleverd.
Wanneer u een overbelasting van een Load methode met een
Byte[]parameter gebruikt om een COFF-afbeelding (Common Object File Format) te laden, wordt bewijs overgenomen van de aanroepende assembly.Wanneer u een Load methode met een
Byte[]parameter gebruikt en Evidence een COFF-installatiekopie laadt, wordt alleen het opgegeven bewijs gebruikt. Bewijs van de aanroepende assembly en bewijs van de COFF-afbeelding wordt genegeerd.
Als u deze methode meer dan één keer aanroept op dezelfde assembly, maar met een ander opgegeven bewijs, genereert de algemene taalruntime niet een FileLoadException omdat de gelijkheid en integriteit van de verschillende bewijsspecificaties niet kunnen worden bepaald. Het bewijs dat het eerst slaagt, is het bewijs dat wordt gebruikt.
In het .NET Framework versie 2.0 wordt de processorarchitectuur toegevoegd aan de assembly-identiteit en kan deze worden opgegeven als onderdeel van assemblynaamtekenreeksen. Bijvoorbeeld 'ProcessorArchitecture=msil'. De aanbevolen manier om een assemblynaam op te geven, is door een AssemblyName object te maken en door te geven aan een juiste overbelasting van de Load methode. Zie AssemblyName.ProcessorArchitecture.
Zie ook
Van toepassing op
Load(Byte[])
Laadt de assembly met een op COFF gebaseerde installatiekopie (Common Object File Format) die een verzonden assembly bevat.
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
Parameters
- rawAssembly
- Byte[]
Een bytematrix die een op COFF gebaseerde installatiekopie is die een gegenereerde assembly bevat.
Retouren
De geladen assembly.
Uitzonderingen
rawAssembly is null.
rawAssembly is geen geldige assembly voor de momenteel geladen runtime.
Opmerkingen
Deze methode overbelast maakt altijd een nieuw Assembly object in een eigen geïsoleerde belastingcontext.
.NET Framework alleen: Het vertrouwensniveau van een assembly die met deze methode wordt geladen, is hetzelfde als het vertrouwensniveau van de aanroepende assembly. Als u een assembly wilt laden vanuit een bytematrix met het vertrouwensniveau van het toepassingsdomein, gebruikt u de overbelasting van de Load(Byte[], Byte[], SecurityContextSource) methode. Zie de Load(Byte[], Byte[], Evidence) overbelasting van de methode voor meer informatie over het gebruik van bewijs met overbelastingen van de Load methode die bytematrices nemen.
Van toepassing op
Load(Byte[], Byte[])
Laadt de assembly met een op COFF gebaseerde installatiekopie (Common Object File Format) die een gegenereerde assembly bevat, eventueel inclusief symbolen voor de assembly.
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);
static member Load : byte[] * byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte()) As Assembly
Parameters
- rawAssembly
- Byte[]
Een bytematrix die een op COFF gebaseerde installatiekopie is die een gegenereerde assembly bevat.
- rawSymbolStore
- Byte[]
Een bytematrix die de onbewerkte bytes bevat die de symbolen voor de assembly vertegenwoordigen.
Retouren
De geladen assembly.
Uitzonderingen
rawAssembly is null.
rawAssembly is geen geldige assembly voor de momenteel geladen runtime.
Opmerkingen
In .NET Core/5+ wordt de doelassembly in de huidige AssemblyLoadContext geladen. Zie Het algoritme voor het laden van beheerde assembly's voor meer informatie over het laden van assembly's.
Deze methode overbelast maakt altijd een nieuw Assembly object in een eigen geïsoleerde belastingcontext.
.NET Framework alleen: Het vertrouwensniveau van een assembly die met deze methode wordt geladen, is hetzelfde als het vertrouwensniveau van de aanroepende assembly. Als u een assembly wilt laden vanuit een bytematrix met het vertrouwensniveau van het toepassingsdomein, gebruikt u de overbelasting van de Load(Byte[], Byte[], SecurityContextSource) methode. Zie de Load(Byte[], Byte[], Evidence) overbelasting van de methode voor meer informatie over het gebruik van bewijs met overbelastingen van de Load methode die bytematrices nemen.
Van toepassing op
Load(String)
Laadt een assembly met de opgegeven naam.
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
Parameters
- assemblyString
- String
De lange of korte vorm van de assemblynaam.
Retouren
De geladen assembly.
Uitzonderingen
assemblyString is null.
assemblyString is een tekenreeks met lengte nul.
assemblyString is niet gevonden.
Een gevonden bestand kan niet worden geladen.
assemblyString is geen geldige assembly voor de momenteel geladen runtime.
Voorbeelden
In het volgende voorbeeld wordt een assembly geladen op basis van de volledig gekwalificeerde naam en worden alle typen weergegeven die zijn opgenomen in de opgegeven assembly. Zie Assemblynamen voor informatie over het verkrijgen van de volledig gekwalificeerde assemblynaam.
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
Opmerkingen
In .NET Core/.NET 5+ wordt de doelassembly geladen in de huidige AssemblyLoadContext of in de context AssemblyLoadContext.CurrentContextualReflectionContext als deze is ingesteld. Zie Het algoritme voor het laden van beheerde assembly's voor meer informatie over het laden van assembly's.
Als u de juiste assembly wilt laden, wordt u aangeraden de Load methode aan te roepen door de lange vorm van de assemblynaam door te geven. De lange vorm van een assemblynaam bestaat uit de eenvoudige naam (zoals 'Systeem' voor de System.dll assembly) samen met de versie, cultuur, openbare-sleuteltoken en eventueel de processorarchitectuur. Deze komt overeen met de eigenschap van FullName de assembly. In het volgende voorbeeld ziet u het gebruik van een lange naam voor het laden van de System.dll assembly voor .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 wordt gegenereerd als assemblyString de volledige assemblynaam wordt opgegeven en de eerste assembly die overeenkomt met de eenvoudige naam een andere versie, cultuur of openbare-sleuteltoken heeft. Het laadprogramma blijft niet zoeken naar andere assembly's die overeenkomen met de eenvoudige naam.
In het .NET Framework versie 2.0 wordt de processorarchitectuur toegevoegd aan de assembly-identiteit en kan deze worden opgegeven als onderdeel van assemblynaamtekenreeksen. Bijvoorbeeld 'ProcessorArchitecture=msil'. De aanbevolen manier om een assemblynaam op te geven, is door een AssemblyName object te maken en door te geven aan een juiste overbelasting van de Load methode. Zie AssemblyName.ProcessorArchitecture.
Zie ook
Van toepassing op
Load(AssemblyName, Evidence)
Let op
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.
Laadt een assembly op basis van zijn AssemblyName. De assembly wordt geladen met behulp van het verstrekte bewijs.
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);
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
Public Shared Function Load (assemblyRef As AssemblyName, assemblySecurity As Evidence) As Assembly
Parameters
- assemblyRef
- AssemblyName
Het object dat de assembly beschrijft die moet worden geladen.
- assemblySecurity
- Evidence
Bewijs voor het laden van de assembly.
Retouren
De geladen assembly.
- Kenmerken
Uitzonderingen
assemblyRef is null.
assemblyRef is niet gevonden.
assemblyRef is geen geldige assembly voor de momenteel geladen runtime.
Een assembly of module is tweemaal geladen met twee verschillende bewijzen.
– of –
assemblyRef geeft een locatie op die is uitgeschakeld op <basis van loadFromRemoteSources>.
Opmerkingen
FileLoadException wordt gegenereerd als assemblyRef de volledige assemblynaam wordt opgegeven en de eerste assembly die overeenkomt met de eenvoudige naam een andere versie, cultuur of openbare-sleuteltoken heeft. Het laadprogramma blijft niet zoeken naar andere assembly's die overeenkomen met de eenvoudige naam.
Zie <loadFromRemoteSources> voor het laden van assembly's vanaf externe locaties.
Note
Gebruik geen AssemblyName met alleen de CodeBase eigenschappenset. De CodeBase eigenschap levert geen elementen van de assembly-identiteit (zoals naam of versie), zodat laden niet plaatsvindt volgens regels voor laden per identiteit, zoals u zou verwachten van de Load methode. In plaats daarvan wordt de assembly geladen met behulp van regels voor laden vanuit. Zie de overbelasting van de Assembly.LoadFrom methode of aanbevolen procedures voor het laden van assembly's voor informatie over de nadelen van het gebruik van de load-from-context.
Of bepaalde machtigingen wel of niet aan een assembly worden verleend, is gebaseerd op bewijs. De regels voor het samenvoegen van assembly- en beveiligingsgegevens zijn als volgt:
Wanneer u een Load methode zonder Evidence parameter gebruikt, wordt de assembly geladen met het bewijs dat de laadlader levert.
Wanneer u een Load methode met een Evidence parameter gebruikt, worden stukken bewijs samengevoegd. Stukken bewijsmateriaal dat als argument aan de Load methode wordt verstrekt, vervangt stukken bewijsmateriaal dat door het laadprogramma wordt geleverd.
Wanneer u een overbelasting van een Load methode met een
Byte[]parameter gebruikt om een COFF-afbeelding (Common Object File Format) te laden, wordt bewijs overgenomen van de aanroepende assembly.Wanneer u een Load methode met een
Byte[]parameter gebruikt en Evidence een COFF-installatiekopie laadt, wordt alleen het opgegeven bewijs gebruikt. Bewijs van de aanroepende assembly en bewijs van de COFF-afbeelding wordt genegeerd.
Note
Als zowel de AssemblyName.Name eigenschap als de AssemblyName.CodeBase eigenschap zijn ingesteld, gebruikt de eerste poging om de assembly te laden de weergavenaam (inclusief versie, cultuur, enzovoort, zoals geretourneerd door de Assembly.FullName eigenschap). Als het bestand niet wordt gevonden, CodeBase wordt gebruikt om naar de assembly te zoeken. Als de assembly wordt gevonden met behulp CodeBasevan, wordt de weergavenaam vergeleken met de assembly. Als de overeenkomst mislukt, wordt er een FileLoadException gegenereerd.
Als u de Load methode meerdere keren aanroept op dezelfde assembly, maar met een ander opgegeven bewijs, genereert de algemene taalruntime niet een FileLoadException omdat de gelijkheid en integriteit van de verschillende bewijsspecificaties niet kunnen worden bepaald. Het bewijs dat het eerst slaagt, is het bewijs dat wordt gebruikt.