Assembly.LoadFrom 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 |
|---|---|
| LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm) |
Verouderd.
Laadt een assembly op basis van de bestandsnaam of het pad, beveiligingsbewijs, hashwaarde en hash-algoritme. |
| LoadFrom(String, Byte[], AssemblyHashAlgorithm) |
Laadt een assembly op basis van de bestandsnaam of het pad, de hashwaarde en het hash-algoritme. |
| LoadFrom(String) |
Laadt een assembly op basis van de bestandsnaam of het pad. |
| LoadFrom(String, Evidence) |
Verouderd.
Laadt een assembly op basis van de bestandsnaam of het pad en levert beveiligingsbewijs. |
Opmerkingen
alleen .NET Framework: Zie <loadFromRemoteSources> voor het laden van assembly's vanaf externe locaties.
LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
Let op
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.
Laadt een assembly op basis van de bestandsnaam of het pad, beveiligingsbewijs, hashwaarde en hash-algoritme.
public:
static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom(string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member LoadFrom : string * System.Security.Policy.Evidence * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member LoadFrom : string * System.Security.Policy.Evidence * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly
Parameters
- assemblyFile
- String
De naam of het pad van het bestand dat het manifest van de assembly bevat.
- securityEvidence
- Evidence
Bewijs voor het laden van de assembly.
- hashValue
- Byte[]
De waarde van de berekende hash-code.
- hashAlgorithm
- AssemblyHashAlgorithm
Het hash-algoritme dat wordt gebruikt voor het hashen van bestanden en voor het genereren van de sterke naam.
Retouren
De geladen assembly.
- Kenmerken
Uitzonderingen
assemblyFile is null.
assemblyFile is niet gevonden of de module die u probeert te laden, geeft geen bestandsnaamextensie op.
Een gevonden bestand kan niet worden geladen.
– of –
Het securityEvidence is niet dubbelzinnig en wordt vastgesteld dat deze ongeldig is.
– of –
assemblyFile geeft een locatie op die is uitgeschakeld op <basis van loadFromRemoteSources>.
assemblyFile is geen geldige assembly voor de momenteel geladen runtime; Bijvoorbeeld een 32-bits assembly in een 64-bits proces.
Een codebasis die niet begint met 'file://' is opgegeven zonder de vereiste WebPermission.
De assemblyFile parameter is een lege tekenreeks ("").
De assemblynaam overschrijdt de door het systeem gedefinieerde maximumlengte.
Opmerkingen
De assemblyFile parameter moet verwijzen naar een URI zonder escapetekens. Deze methode levert escapetekens voor alle ongeldige tekens in de URI.
Note
Ftp (File Transfer Protocol) wordt niet ondersteund. Als de URI die wordt assemblyFile opgegeven een FTP-adres is, wordt de assembly niet geladen. Er wordt geen uitzondering opgeworpen.
assemblyFile kan absoluut of relatief zijn ten opzichte van de huidige map.
Assembly's kunnen worden geladen in een van de drie contexten of kunnen zonder context worden geladen:
De laadcontext bevat assembly's die zijn gevonden door te testen: in de GAC, in een hostassemblyarchief als de runtime wordt gehost, of in het ApplicationBase ene PrivateBinPath toepassingsdomein. De meeste overloads van de Load method laden assembly's in deze context.
De load-from-context bevat assembly's waarvoor de gebruiker een pad heeft opgegeven dat niet is opgenomen in de mappen die zijn doorzocht door te zoeken. LoadFrom, CreateInstanceFromen ExecuteAssembly zijn voorbeelden van methoden die per pad worden geladen.
Zie
<loadFromRemoteSources>voor het laden van assembly's vanaf externe locaties.De context alleen weerspiegeling bevat assembly's die zijn geladen met de ReflectionOnlyLoad en ReflectionOnlyLoadFrom methoden. Code in deze contexten kan niet worden uitgevoerd.
Als de gebruiker de assembly heeft gegenereerd of gevonden, bevindt deze zich niet in een context. Dit geldt voor assembly's die worden geladen met behulp van overbelastingen van de Load methode waarmee een bytematrix met een assembly wordt opgegeven, en op tijdelijke dynamische assembly's die zijn gemaakt met weerspiegelingsuitzending en niet op schijf worden opgeslagen.
Met de load-from-context kan een assembly worden geladen vanuit een pad dat niet is opgenomen in het testen, en kan er toch afhankelijkheden van dat pad worden gevonden en geladen omdat de padgegevens worden onderhouden door de context.
De LoadFrom methode heeft de volgende nadelen. Overweeg in plaats daarvan Load te gebruiken.
Als een assembly met dezelfde identiteit al is geladen, wordt de geladen assembly geretourneerd, LoadFrom zelfs als er een ander pad is opgegeven.
Als een assembly wordt geladen met LoadFromen later een assembly in de laadcontext probeert dezelfde assembly te laden op weergavenaam, mislukt de laadpoging. Dit kan gebeuren wanneer een assembly wordt gedeserialiseerd.
Als een assembly wordt geladen met LoadFromen het testpad een assembly met dezelfde identiteit bevat, maar een andere locatie, een InvalidCastException, MissingMethodExceptionof ander onverwacht gedrag kan optreden.
LoadFrom vereist FileIOPermissionAccess.Read en FileIOPermissionAccess.PathDiscovery, of WebPermission, op het opgegeven pad.
Als er een systeemeigen installatiekopieën voor
assemblyFilebestaan, wordt deze niet gebruikt. De assembly kan niet als domeinneutraal worden 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 LoadFrom methode zonder Evidence parameter gebruikt, wordt de assembly geladen met het bewijs dat de laadlader levert.
Wanneer u een LoadFrom methode met een Evidence parameter gebruikt, worden stukken bewijs samengevoegd. Stukken bewijsmateriaal dat als argument aan de LoadFrom methode wordt verstrekt, vervangt stukken bewijsmateriaal dat door het laadprogramma wordt geleverd.
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.
Wanneer u een LoadFrom methode met een
Byte[]parameter gebruikt om een COFF-afbeelding (Common Object File Format) te laden, wordt bewijs gecombineerd.ZoneSiteenUrlworden overgenomen van de aanroepende assembly enHashStrongNameworden overgenomen uit de COFF-assembly.Wanneer u een LoadFrom 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.
Van toepassing op
LoadFrom(String, Byte[], AssemblyHashAlgorithm)
Laadt een assembly op basis van de bestandsnaam of het pad, de hashwaarde en het hash-algoritme.
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);
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
Parameters
- assemblyFile
- String
De naam of het pad van het bestand dat het manifest van de assembly bevat.
- hashValue
- Byte[]
De waarde van de berekende hash-code.
- hashAlgorithm
- AssemblyHashAlgorithm
Het hash-algoritme dat wordt gebruikt voor het hashen van bestanden en voor het genereren van de sterke naam.
Retouren
De geladen assembly.
Uitzonderingen
.NET Core en .NET 5+ alleen: in alle gevallen.
assemblyFile is null.
assemblyFile is niet gevonden of de module die u probeert te laden, geeft geen bestandsnaamextensie op.
Een gevonden bestand kan niet worden geladen.
– of –
assemblyFile geeft een locatie op die is uitgeschakeld op <basis van loadFromRemoteSources>.
assemblyFile is geen geldige assembly voor de momenteel geladen runtime; Bijvoorbeeld een 32-bits assembly in een 64-bits proces.
Een codebasis die niet begint met 'file://' is opgegeven zonder de vereiste WebPermission.
De assemblyFile parameter is een lege tekenreeks ("").
De assemblynaam overschrijdt de door het systeem gedefinieerde maximumlengte.
Opmerkingen
Deze API wordt niet ondersteund in .NET Core/.NET 5+. Deze methode genereert NotSupportedException wanneer deze wordt aangeroepen. Gebruik in plaats daarvan LoadFrom(String).
De assemblyFile parameter moet verwijzen naar een URI zonder escapetekens. Deze methode levert escapetekens voor alle ongeldige tekens in de URI.
Note
Ftp (File Transfer Protocol) wordt niet ondersteund. Als de URI die wordt assemblyFile opgegeven een FTP-adres is, wordt de assembly niet geladen. Er wordt geen uitzondering opgeworpen.
assemblyFile kan absoluut of relatief zijn ten opzichte van de huidige map.
Assembly's kunnen worden geladen in een van de drie contexten of kunnen zonder context worden geladen:
De laadcontext bevat assembly's die zijn gevonden door te testen: in de globale assemblycache, in een hostassemblyarchief als de runtime wordt gehost of in het ApplicationBase toepassingsdomein PrivateBinPath . De meeste overloads van de Load method laden assembly's in deze context.
De load-from-context bevat assembly's waarvoor de gebruiker een pad heeft opgegeven dat niet is opgenomen in het testen. LoadFrom, CreateInstanceFromen ExecuteAssembly zijn voorbeelden van methoden die per pad worden geladen.
Zie
<loadFromRemoteSources>voor het laden van assembly's vanaf externe locaties.De context alleen weerspiegeling bevat assembly's die zijn geladen met de ReflectionOnlyLoad en ReflectionOnlyLoadFrom methoden. Code in deze contexten kan niet worden uitgevoerd.
Als de gebruiker de assembly heeft gegenereerd of gevonden, bevindt deze zich niet in een context. Dit geldt voor assembly's die worden geladen met behulp van overbelastingen van de Load methode waarmee een bytematrix met een assembly wordt opgegeven, en op tijdelijke dynamische assembly's die zijn gemaakt met weerspiegelingsuitzending en niet op schijf worden opgeslagen.
Met de load-from-context kan een assembly worden geladen vanuit een pad dat niet is opgenomen in het testen en toch is toegestaan dat afhankelijkheden van dat pad worden gevonden en geladen omdat de padgegevens worden onderhouden door de context.
De LoadFrom methode heeft de volgende nadelen. Overweeg in plaats daarvan Load te gebruiken.
Als een assembly met dezelfde identiteit al is geladen, wordt de geladen assembly geretourneerd, LoadFrom zelfs als er een ander pad is opgegeven.
Als een assembly wordt geladen met LoadFromen later een assembly in de laadcontext probeert dezelfde assembly te laden op weergavenaam, mislukt de laadpoging. Dit kan gebeuren wanneer een assembly wordt gedeserialiseerd.
Als een assembly wordt geladen met LoadFromen het testpad een assembly met dezelfde identiteit bevat, maar een andere locatie, een InvalidCastException, MissingMethodExceptionof ander onverwacht gedrag kan optreden.
LoadFrom vereist FileIOPermissionAccess.Read en FileIOPermissionAccess.PathDiscovery, of WebPermission, op het opgegeven pad.
Als er een systeemeigen installatiekopieën voor
assemblyFilebestaan, wordt deze niet gebruikt. De assembly kan niet als domeinneutraal worden geladen.
De montage wordt geladen met het bewijs dat de laadlader levert.
Van toepassing op
LoadFrom(String)
Laadt een assembly op basis van de bestandsnaam of het pad.
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
Parameters
- assemblyFile
- String
De naam of het pad van het bestand dat het manifest van de assembly bevat.
Retouren
De geladen assembly.
Uitzonderingen
assemblyFile is null.
assemblyFile is niet gevonden of de module die u probeert te laden, geeft geen bestandsnaamextensie op.
Een gevonden bestand kan niet worden geladen.
– of –
alleen .NET Framework: assemblyFile geeft een locatie op die is uitgeschakeld op basis van <loadFromRemoteSources>.
assemblyFile is geen geldige assembly voor de momenteel geladen runtime; Bijvoorbeeld een 32-bits assembly in een 64-bits proces.
Een codebasis die niet begint met 'file://' is opgegeven zonder de vereiste WebPermission.
De assemblyFile parameter is een lege tekenreeks ("").
De assemblynaam overschrijdt de door het systeem gedefinieerde maximumlengte.
Voorbeelden
In het volgende voorbeeld wordt een assembly geladen op basis van de bestandsnaam of het pad.
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
Opmerkingen
Deze API is aanwezig in .NET Core voor compatibiliteit, maar het wordt aanbevolen om in plaats daarvan AssemblyLoadContext overbelastingen te gebruiken.
De assembly wordt geladen in de standaard AssemblyLoadContext. Zie Het algoritme voor het laden van beheerde assembly's voor meer informatie over het laden van assembly's.
De assemblyFile parameter moet verwijzen naar een URI zonder escapetekens. Deze methode levert escapetekens voor alle ongeldige tekens in de URI.
Note
alleen .NET Framework: FTP (File Transfer Protocol) wordt niet ondersteund. Als de URI die wordt assemblyFile opgegeven een FTP-adres is, wordt de assembly niet geladen. Er wordt geen uitzondering opgeworpen.
assemblyFile kan absoluut of relatief zijn ten opzichte van de huidige map.
alleen .NET Framework: Assembly's kunnen in een van de drie contexten worden geladen of kunnen zonder context worden geladen:
De laadcontext bevat assembly's die zijn gevonden door te testen: in de GAC, in een hostassemblyarchief als de runtime wordt gehost, of in het ApplicationBase ene PrivateBinPath toepassingsdomein. De meeste overloads van de Load method laden assembly's in deze context.
De load-from-context bevat assembly's waarvoor de gebruiker een pad heeft opgegeven dat niet is opgenomen in de mappen die zijn doorzocht door te zoeken. Hiermee kunnen ook afhankelijkheden van dat pad worden gevonden en geladen omdat de padgegevens worden onderhouden door de context. LoadFrom, CreateInstanceFromen ExecuteAssembly zijn voorbeelden van methoden die per pad worden geladen.
Zie
<loadFromRemoteSources>voor het laden van assembly's vanaf externe locaties.De context alleen weerspiegeling bevat assembly's die zijn geladen met de ReflectionOnlyLoad en ReflectionOnlyLoadFrom methoden. Code in deze contexten kan niet worden uitgevoerd.
Als de gebruiker de assembly heeft gegenereerd of gevonden, bevindt deze zich niet in een context. Dit geldt voor assembly's die worden geladen met behulp van overbelastingen van de Load methode waarmee een bytematrix met een assembly wordt opgegeven, en op tijdelijke dynamische assembly's die zijn gemaakt met weerspiegelingsuitzending en niet op schijf worden opgeslagen.
De LoadFrom methode heeft de volgende nadelen. Overweeg in plaats daarvan Load te gebruiken.
Als een assembly met dezelfde identiteit al geladen is in de load-from-context, retourneert LoadFrom de geladen assembly, zelfs als er een ander pad is opgegeven.
Een assembly kan worden geladen in de load-from-context, ook al bestaat er een assembly met dezelfde identiteit in de laadcontext. Interoperabiliteit tussen de twee assembly's werkt niet, wat leidt tot fouten zoals InvalidCastException, MissingMethodExceptionof ander onverwacht gedrag.
Als u een locatie aanroept LoadFrom die zich in het testpad bevindt, wordt de assembly geladen in de laadcontext en niet in de context van de belasting.
Als een assemblybestand waarvan de identiteit wordt doorgegeven door een bindingsomleidingsbeleid wordt doorgegeven LoadFrom, wordt het beleid toegepast en wordt de assembly geladen vanuit het testpad in de laadcontext.
Als een assembly wordt geladen in de load-from-context en later probeert een assembly in de laadcontext dezelfde assembly te laden op weergavenaam, mislukt de laadpoging. Dit kan gebeuren wanneer een assembly wordt gedeserialiseerd.
LoadFrom vereist FileIOPermissionAccess.Read en FileIOPermissionAccess.PathDiscovery, of WebPermission, op het opgegeven pad.
Als er een systeemeigen installatiekopieën voor
assemblyFilebestaan, wordt deze niet gebruikt. De assembly kan niet als domeinneutraal worden geladen.
Van toepassing op
LoadFrom(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 LoadFrom 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 bestandsnaam of het pad en levert beveiligingsbewijs.
public:
static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly LoadFrom(string assemblyFile, System.Security.Policy.Evidence securityEvidence);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile, System.Security.Policy.Evidence securityEvidence);
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence) As Assembly
Parameters
- assemblyFile
- String
De naam of het pad van het bestand dat het manifest van de assembly bevat.
- securityEvidence
- Evidence
Bewijs voor het laden van de assembly.
Retouren
De geladen assembly.
- Kenmerken
Uitzonderingen
assemblyFile is null.
assemblyFile is niet gevonden of de module die u probeert te laden, geeft geen bestandsnaamextensie op.
Een gevonden bestand kan niet worden geladen.
– of –
Het securityEvidence is niet dubbelzinnig en wordt vastgesteld dat deze ongeldig is.
– of –
assemblyFile geeft een locatie op die is uitgeschakeld op <basis van loadFromRemoteSources>.
assemblyFile is geen geldige assembly voor de momenteel geladen runtime; Bijvoorbeeld een 32-bits assembly in een 64-bits proces.
Een codebasis die niet begint met 'file://' is opgegeven zonder de vereiste WebPermission.
De assemblyFile parameter is een lege tekenreeks ("").
De assemblynaam overschrijdt de door het systeem gedefinieerde maximumlengte.
Opmerkingen
De assemblyFile parameter moet verwijzen naar een URI zonder escapetekens. Deze methode levert escapetekens voor alle ongeldige tekens in de URI.
Note
Ftp (File Transfer Protocol) wordt niet ondersteund. Als de URI die wordt assemblyFile opgegeven een FTP-adres is, wordt de assembly niet geladen. Er wordt geen uitzondering opgeworpen.
assemblyFile kan absoluut of relatief zijn ten opzichte van de huidige map.
Assembly's kunnen worden geladen in een van de drie contexten of kunnen zonder context worden geladen:
De laadcontext bevat assembly's die zijn gevonden door te testen: in de GAC, in een hostassemblyarchief als de runtime wordt gehost, of in het ApplicationBase ene PrivateBinPath toepassingsdomein. De meeste overloads van de Load method laden assembly's in deze context.
De load-from-context bevat assembly's waarvoor de gebruiker een pad heeft opgegeven dat niet is opgenomen in de mappen die zijn doorzocht door te zoeken. LoadFrom, CreateInstanceFromen ExecuteAssembly zijn voorbeelden van methoden die per pad worden geladen.
Zie
<loadFromRemoteSources>voor het laden van assembly's vanaf externe locaties.De context alleen weerspiegeling bevat assembly's die zijn geladen met de ReflectionOnlyLoad en ReflectionOnlyLoadFrom methoden. Code in deze contexten kan niet worden uitgevoerd.
Als de gebruiker de assembly heeft gegenereerd of gevonden, bevindt deze zich niet in een context. Dit geldt voor assembly's die worden geladen met behulp van overbelastingen van de Load methode waarmee een bytematrix met een assembly wordt opgegeven, en op tijdelijke dynamische assembly's die zijn gemaakt met weerspiegelingsuitzending en niet op schijf worden opgeslagen.
Met de load-from-context kan een assembly worden geladen vanuit een pad dat niet is opgenomen in het testen, en kan er toch afhankelijkheden van dat pad worden gevonden en geladen omdat de padgegevens worden onderhouden door de context.
De LoadFrom methode heeft de volgende nadelen. Overweeg in plaats daarvan Load te gebruiken.
Als een assembly met dezelfde identiteit al is geladen, wordt de geladen assembly geretourneerd, LoadFrom zelfs als er een ander pad is opgegeven.
Als een assembly wordt geladen met LoadFromen later een assembly in de laadcontext probeert dezelfde assembly te laden op weergavenaam, mislukt de laadpoging. Dit kan gebeuren wanneer een assembly wordt gedeserialiseerd.
Als een assembly wordt geladen met LoadFromen het testpad een assembly met dezelfde identiteit bevat, maar een andere locatie, een InvalidCastException, MissingMethodExceptionof ander onverwacht gedrag kan optreden.
LoadFrom vereist FileIOPermissionAccess.Read en FileIOPermissionAccess.PathDiscovery, of WebPermission, op het opgegeven pad.
Als er een systeemeigen installatiekopieën voor
assemblyFilebestaan, wordt deze niet gebruikt. De assembly kan niet als domeinneutraal worden 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 LoadFrom methode zonder Evidence parameter gebruikt, wordt de assembly geladen met het bewijs dat de laadlader levert.
Wanneer u een LoadFrom methode met een Evidence parameter gebruikt, worden stukken bewijs samengevoegd. Stukken bewijsmateriaal dat als argument aan de LoadFrom methode wordt verstrekt, vervangt stukken bewijsmateriaal dat door het laadprogramma wordt geleverd.
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.
Wanneer u een LoadFrom methode met een
Byte[]parameter gebruikt om een COFF-afbeelding (Common Object File Format) te laden, wordt bewijs gecombineerd.ZoneSiteenUrlworden overgenomen van de aanroepende assembly enHashStrongNameworden overgenomen uit de COFF-assembly.Wanneer u een LoadFrom 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.