Assembly.LoadFrom Metoda

Definice

Načte sestavení.

Přetížení

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
Zastaralé.

Načte sestavení na základě názvu souboru nebo cesty, důkazu zabezpečení, hodnoty hash a hashovacího algoritmu.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Načte sestavení s názvem souboru nebo cestou, hodnotou hash a hashovacím algoritmem.

LoadFrom(String)

Načte sestavení s názvem nebo cestou k souboru.

LoadFrom(String, Evidence)
Zastaralé.

Načte sestavení s názvem souboru nebo cestou a poskytující důkazy zabezpečení.

Poznámky

Počínaje rozhraním .NET Framework 4 je možnost spouštění kódu v sestaveních načtených ze vzdálených umístění ve výchozím nastavení zakázaná a volání LoadFrom metody vyvolá FileLoadException. Chcete-li načíst sestavení a spustit jeho kód, musíte buď:

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)

Upozornění

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.

Načte sestavení na základě názvu souboru nebo cesty, důkazu zabezpečení, hodnoty hash a hashovacího algoritmu.

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

Parametry

assemblyFile
String

Název nebo cesta k souboru, který obsahuje manifest sestavení.

securityEvidence
Evidence

Důkaz pro načtení sestavení.

hashValue
Byte[]

Hodnota vypočítaného hashového kódu.

hashAlgorithm
AssemblyHashAlgorithm

Hashovací algoritmus používaný pro hashování souborů a pro generování silného názvu.

Návraty

Načtení sestavení.

Atributy

Výjimky

assemblyFile je null.

assemblyFile nebyla nalezena nebo modul, který se pokoušíte načíst, neurčuje příponu názvu souboru.

Nalezený soubor nelze načíst.

-nebo-

Není securityEvidence nejednoznačný a je určen jako neplatný.

-nebo-

Možnost spouštět kód ve vzdálených sestaveních je zakázána. Viz <loadFromRemoteSources>.

assemblyFile není platné sestavení pro aktuálně načtený modul runtime; Například 32bitové sestavení v 64bitovém procesu.

Základ kódu, který nezačíná na "file://", byl zadán bez požadovaného WebPermissionznaku .

Parametr assemblyFile je prázdný řetězec ("").

Název sestavení přesahuje maximální délku definovanou systémem.

Poznámky

Parametr assemblyFile musí odkazovat na identifikátor URI bez řídicích znaků. Tato metoda poskytuje řídicí znaky pro všechny neplatné znaky v identifikátoru URI.

Poznámka

Protokol FTP (File Transfer Protocol) se nepodporuje. Pokud je identifikátor URI zadaný pro assemblyFile adresu FTP, sestavení se nenačte. Žádná výjimka se nevyvolá.

assemblyFile může být absolutní nebo relativní vzhledem k aktuálnímu adresáři.

Sestavení mohou být načtena do jednoho ze tří kontextů nebo mohou být načtena bez kontextu:

  • Kontext načtení obsahuje sestavení zjištěných sondou: v globální mezipaměti GAC, v úložišti sestavení hostitele, pokud je modul runtime hostovaný, nebo v ApplicationBase doméně PrivateBinPath a aplikace. Většina přetížení metody načítá Load sestavení do tohoto kontextu.

  • Kontext načítání obsahuje sestavení, pro která uživatel zadal cestu, která není zahrnuta v adresářích prohledána sondou. LoadFrom, CreateInstanceFroma ExecuteAssembly jsou příklady metod, které se načítají podle cesty.

    Počínaje .NET Framework 4, pokud identifikátor URI assemblyFile určuje vzdálené umístění, načítání sestavení je ve výchozím nastavení zakázáno a LoadFrom metoda vyvolá FileLoadException. Pokud chcete povolit spuštění kódu načteného ze vzdálených umístění, můžete použít <loadFromRemoteSources> element konfigurace.

  • Kontext jen pro reflexi obsahuje sestavení načtená pomocí ReflectionOnlyLoad metod a ReflectionOnlyLoadFrom ; kód v těchto kontextech nelze spustit.

  • Pokud uživatel vygeneroval nebo našel sestavení, není v žádném kontextu. To platí pro sestavení načtená pomocí přetížení Load metody, která určují pole bajtů obsahující sestavení, a pro přechodná dynamická sestavení vytvořená s odrazem emitují a neukládají se na disk.

Kontext načítání umožňuje načtení sestavení z cesty, která není zahrnuta do sondování, a přesto umožňuje nalezení a načtení závislostí na této cestě, protože informace o cestě jsou udržovány kontextem.

Metoda LoadFrom má následující nevýhody. Zvažte místo toho použití Load .

  • Pokud je již načteno sestavení se stejnou identitou, LoadFrom vrátí načtené sestavení i v případě, že byla zadána jiná cesta.

  • Pokud je sestavení načteno pomocí LoadFroma později se sestavení v kontextu načtení pokusí načíst stejné sestavení podle zobrazovaného názvu, pokus o načtení se nezdaří. K tomu může dojít při deserializaci sestavení.

  • Pokud je sestavení načteno s LoadFroma cesta sondy obsahuje sestavení se stejnou identitou, ale v jiném umístění, může dojít k neočekávanému InvalidCastExceptionchování , MissingMethodExceptionnebo jinému neočekávanému chování.

  • LoadFrom požadavky FileIOPermissionAccess.Read a FileIOPermissionAccess.PathDiscovery, nebo WebPermissionna zadané cestě.

  • Pokud nativní bitová kopie pro assemblyFileexistuje, nepoužívá se. Sestavení nelze načíst jako doménově neutrální.

To, zda jsou určitá oprávnění udělena nebo nebyla udělena sestavení, je založena na důkazech. Pravidla pro slučování prostředků sestavení a zabezpečení jsou následující:

  • Při použití LoadFrom metody bez Evidence parametru je sestavení načteno s důkazem, že zavaděč poskytuje.

  • Když použijete metodu LoadFrom s parametrem Evidence , části důkazů se sloučí. Důkazy poskytnuté jako argument LoadFrom metody nahrazují důkazy dodané zavaděčem.

  • Pokud voláte tuto metodu více než jednou ve stejném sestavení, ale s jiným důkazem zadaným, modul CLR (Common Language Runtime) nevyvolá FileLoadException výjimku , protože nelze určit rovnost a integritu různých specifikací důkazů. Důkazy, které jsou první úspěšné, jsou důkazy, které jsou použity.

  • Když použijete metodu LoadFrom s parametrem Byte[] k načtení obrázku COFF (Common Object File Format), důkazy se zkombinují. Zone, Url a Site jsou zděděny z volajícího sestavení a Hash a StrongName jsou převzaty ze sestavení COFF.

  • Když použijete metodu LoadFrom s parametrem Byte[] a Evidence k načtení image COFF, použije se pouze dodaný důkaz. Důkazy o volajícím sestavení a důkazy image COFF jsou ignorovány.

Platí pro

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Zdroj:
Assembly.cs
Zdroj:
Assembly.cs
Zdroj:
Assembly.cs

Načte sestavení s názvem souboru nebo cestou, hodnotou hash a hashovacím algoritmem.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

Parametry

assemblyFile
String

Název nebo cesta k souboru, který obsahuje manifest sestavení.

hashValue
Byte[]

Hodnota vypočítaného hashového kódu.

hashAlgorithm
AssemblyHashAlgorithm

Hashovací algoritmus používaný pro hashování souborů a pro generování silného názvu.

Návraty

Načtení sestavení.

Výjimky

assemblyFile je null.

assemblyFile nebyl nalezen nebo modul, který se pokoušíte načíst, neurčuje příponu názvu souboru.

Nalezený soubor nelze načíst.

-nebo-

Možnost spouštět kód ve vzdálených sestaveních je zakázána. Viz <loadFromRemoteSources>.

assemblyFile není platné sestavení pro aktuálně načtený modul runtime; Například 32bitové sestavení v 64bitovém procesu.

Základ kódu, který nezačíná na "file://", byl zadán bez požadovaného WebPermissionznaku .

Parametr assemblyFile je prázdný řetězec ("").

Název sestavení přesahuje maximální délku definovanou systémem.

Poznámky

Parametr assemblyFile musí odkazovat na identifikátor URI bez řídicích znaků. Tato metoda poskytuje řídicí znaky pro všechny neplatné znaky v identifikátoru URI.

Poznámka

Protokol FTP (File Transfer Protocol) se nepodporuje. Pokud je identifikátor URI zadaný pro assemblyFile adresu FTP, sestavení se nenačte. Žádná výjimka se nevyvolá.

assemblyFile může být absolutní nebo relativní vzhledem k aktuálnímu adresáři.

Sestavení mohou být načtena do jednoho ze tří kontextů nebo mohou být načtena bez kontextu:

  • Kontext načtení obsahuje sestavení nalezená sondou: v globální mezipaměti sestavení (GPA), v úložišti hostitelských sestavení (pokud je modul runtime hostovaný) nebo v ApplicationBase doméně aplikace a PrivateBinPath . Většina přetížení metody načítá Load sestavení do tohoto kontextu.

  • Kontext načítání obsahuje sestavení, pro která uživatel zadal cestu, která není zahrnuta do sondování. LoadFrom, CreateInstanceFroma ExecuteAssembly jsou příklady metod, které se načítají podle cesty.

    Počínaje .NET Framework 4, pokud identifikátor URI assemblyFile určuje vzdálené umístění, načítání sestavení je ve výchozím nastavení zakázáno a LoadFrom metoda vyvolá FileLoadException. Pokud chcete povolit spuštění kódu načteného ze vzdálených umístění, můžete použít <loadFromRemoteSources> element konfigurace.

  • Kontext jen pro reflexi obsahuje sestavení načtená pomocí ReflectionOnlyLoad metod a ReflectionOnlyLoadFrom ; kód v těchto kontextech nelze spustit.

  • Pokud uživatel vygeneroval nebo našel sestavení, není v žádném kontextu. To platí pro sestavení načtená pomocí přetížení Load metody, která určují pole bajtů obsahující sestavení, a pro přechodná dynamická sestavení vytvořená s odrazem emitují a neukládají se na disk.

Kontext načítání umožňuje načtení sestavení z cesty, která není zahrnuta do sondování, a přesto umožňuje najít a načíst závislosti na této cestě, protože informace o cestě jsou udržovány kontextem.

Metoda LoadFrom má následující nevýhody. Zvažte místo toho použití Load .

  • Pokud je již načteno sestavení se stejnou identitou, LoadFrom vrátí načtené sestavení i v případě, že byla zadána jiná cesta.

  • Pokud je sestavení načteno pomocí LoadFroma později se sestavení v kontextu načtení pokusí načíst stejné sestavení podle zobrazovaného názvu, pokus o načtení se nezdaří. K tomu může dojít při deserializaci sestavení.

  • Pokud je sestavení načteno s LoadFroma cesta sondy obsahuje sestavení se stejnou identitou, ale v jiném umístění, může dojít k neočekávanému InvalidCastExceptionchování , MissingMethodExceptionnebo jinému neočekávanému chování.

  • LoadFrom požadavky FileIOPermissionAccess.Read a FileIOPermissionAccess.PathDiscovery, nebo WebPermissionna zadané cestě.

  • Pokud nativní bitová kopie pro assemblyFileexistuje, nepoužívá se. Sestavení nelze načíst jako neutrální z domény.

Sestavení je naloženo s důkazem, že nakladač dodává.

Platí pro

LoadFrom(String)

Zdroj:
Assembly.cs
Zdroj:
Assembly.cs
Zdroj:
Assembly.cs

Načte sestavení s názvem nebo cestou k souboru.

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

Parametry

assemblyFile
String

Název nebo cesta k souboru, který obsahuje manifest sestavení.

Návraty

Načtení sestavení.

Výjimky

assemblyFile je null.

assemblyFile nebyla nalezena nebo modul, který se pokoušíte načíst, neurčuje příponu názvu souboru.

Nalezený soubor nelze načíst.

-nebo-

Možnost spouštět kód ve vzdálených sestaveních je zakázána. Viz <loadFromRemoteSources>.

assemblyFile není platné sestavení pro aktuálně načtený modul runtime; Například 32bitové sestavení v 64bitovém procesu.

Základ kódu, který nezačíná na "file://", byl zadán bez požadovaného WebPermissionznaku .

Parametr assemblyFile je prázdný řetězec ("").

Název sestavení přesahuje maximální délku definovanou systémem.

Příklady

Následující příklad načte sestavení s názvem souboru nebo cestou.

Assembly^ SampleAssembly;
SampleAssembly = Assembly::LoadFrom( "c:\\Sample.Assembly.dll" );
// Obtain a reference to a method known to exist in assembly.
MethodInfo^ Method = SampleAssembly->GetTypes()[ 0 ]->GetMethod( "Method1" );
// Obtain a reference to the parameters collection of the MethodInfo instance.
array<ParameterInfo^>^ Params = Method->GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System::String
//   Position = 0
//   Optional=False
for each ( ParameterInfo^ Param in Params )
{
   Console::WriteLine( "Param= {0}", Param->Name );
   Console::WriteLine( "  Type= {0}", Param->ParameterType );
   Console::WriteLine( "  Position= {0}", Param->Position );
   Console::WriteLine( "  Optional= {0}", Param->IsOptional );
}
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
// Obtain a reference to a method known to exist in assembly.
MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
ParameterInfo[] Params = Method.GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System.String
//   Position = 0
//   Optional=False
foreach (ParameterInfo Param in Params)
{
    Console.WriteLine("Param=" + Param.Name.ToString());
    Console.WriteLine("  Type=" + Param.ParameterType.ToString());
    Console.WriteLine("  Position=" + Param.Position.ToString());
    Console.WriteLine("  Optional=" + Param.IsOptional.ToString());
}
Dim SampleAssembly As [Assembly]
SampleAssembly = [Assembly].LoadFrom("c:\Sample.Assembly.dll")
' Obtain a reference to a method known to exist in assembly.
Dim Method As MethodInfo = SampleAssembly.GetTypes()(0).GetMethod("Method1")
' Obtain a reference to the parameters collection of the MethodInfo instance.
Dim Params As ParameterInfo() = Method.GetParameters()
' Display information about method parameters.
' Param = sParam1
'   Type = System.String
'   Position = 0
'   Optional=False
For Each Param As ParameterInfo In Params
    Console.WriteLine(("Param=" + Param.Name.ToString()))
    Console.WriteLine(("  Type=" + Param.ParameterType.ToString()))
    Console.WriteLine(("  Position=" + Param.Position.ToString()))
    Console.WriteLine(("  Optional=" + Param.IsOptional.ToString()))
Next

Poznámky

Parametr assemblyFile musí odkazovat na identifikátor URI bez řídicích znaků. Tato metoda poskytuje řídicí znaky pro všechny neplatné znaky v identifikátoru URI.

Poznámka

Protokol FTP (File Transfer Protocol) se nepodporuje. Pokud je identifikátor URI zadaný pro assemblyFile adresu FTP, sestavení se nenačte. Žádná výjimka se nevyvolá.

assemblyFile může být absolutní nebo relativní vzhledem k aktuálnímu adresáři.

Sestavení mohou být načtena do jednoho ze tří kontextů nebo mohou být načtena bez kontextu:

  • Kontext načtení obsahuje sestavení zjištěných sondou: v globální mezipaměti GAC, v úložišti sestavení hostitele, pokud je modul runtime hostovaný, nebo v ApplicationBase doméně PrivateBinPath a aplikace. Většina přetížení metody načítá Load sestavení do tohoto kontextu.

  • Kontext načítání obsahuje sestavení, pro která uživatel zadal cestu, která není zahrnuta v adresářích prohledána sondou. LoadFrom, CreateInstanceFroma ExecuteAssembly jsou příklady metod, které se načítají podle cesty.

    Počínaje .NET Framework 4, pokud identifikátor URI assemblyFile určuje vzdálené umístění, načítání sestavení je ve výchozím nastavení zakázáno a LoadFrom metoda vyvolá FileLoadException. Pokud chcete povolit spuštění kódu načteného ze vzdálených umístění, můžete použít <loadFromRemoteSources> element konfigurace.

  • Kontext jen pro reflexi obsahuje sestavení načtená pomocí ReflectionOnlyLoad metod a ReflectionOnlyLoadFrom ; kód v těchto kontextech nelze spustit.

  • Pokud uživatel vygeneroval nebo našel sestavení, není v žádném kontextu. To platí pro sestavení načtená pomocí přetížení Load metody, která určují pole bajtů obsahující sestavení, a pro přechodná dynamická sestavení vytvořená s odrazem emitují a neukládají se na disk.

Kontext načítání umožňuje načtení sestavení z cesty, která není zahrnuta do sondování, a přesto umožňuje nalezení a načtení závislostí na této cestě, protože informace o cestě jsou udržovány kontextem.

Metoda LoadFrom má následující nevýhody. Zvažte místo toho použití Load .

  • Pokud je sestavení se stejnou identitou již načteno v kontextu načtení z, LoadFrom vrátí načtené sestavení i v případě, že byla zadána jiná cesta.

  • Sestavení může být načteno v kontextu načítání, i když v kontextu načtení existuje sestavení se stejnou identitou. Interoperabilita mezi dvěma sestaveními nebude fungovat, což vede k chybám jako InvalidCastException, MissingMethodExceptionnebo jinému neočekávanému chování.

  • Volání LoadFrom s umístěním, které je v cestě sondy, načte sestavení v kontextu zatížení, a ne v kontextu načítání z.

  • Pokud je soubor sestavení, jehož identita je goverened zásadou přesměrování vazby předána do LoadFrom, zásada se použije a sestavení bude načteno z cesty sondy v kontextu načtení.

  • Pokud je sestavení načteno v kontextu načítání z a později se sestavení v kontextu načtení pokusí načíst stejné sestavení podle zobrazovaného názvu, pokus o načtení se nezdaří. K tomu může dojít při deserializaci sestavení.

  • LoadFrom požadavky FileIOPermissionAccess.Read a FileIOPermissionAccess.PathDiscovery, nebo WebPermissionna zadané cestě.

  • Pokud nativní bitová kopie pro assemblyFileexistuje, nepoužívá se. Sestavení nelze načíst jako doménově neutrální.

Platí pro

LoadFrom(String, Evidence)

Upozornění

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.

Načte sestavení s názvem souboru nebo cestou a poskytne důkazy zabezpečení.

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

Parametry

assemblyFile
String

Název nebo cesta k souboru, který obsahuje manifest sestavení.

securityEvidence
Evidence

Důkaz pro načtení sestavení.

Návraty

Načtení sestavení.

Atributy

Výjimky

assemblyFile je null.

assemblyFile nebyla nalezena nebo modul, který se pokoušíte načíst, neurčuje příponu názvu souboru.

Nalezený soubor nelze načíst.

-nebo-

Není securityEvidence nejednoznačný a je určen jako neplatný.

-nebo-

Možnost spouštět kód ve vzdálených sestaveních je zakázána. Viz <loadFromRemoteSources>.

assemblyFile není platné sestavení pro aktuálně načtený modul runtime; Například 32bitové sestavení v 64bitovém procesu.

Základ kódu, který nezačíná na "file://", byl zadán bez požadovaného WebPermissionznaku .

Parametr assemblyFile je prázdný řetězec ("").

Název sestavení přesahuje maximální délku definovanou systémem.

Poznámky

Parametr assemblyFile musí odkazovat na identifikátor URI bez řídicích znaků. Tato metoda poskytuje řídicí znaky pro všechny neplatné znaky v identifikátoru URI.

Poznámka

Protokol FTP (File Transfer Protocol) se nepodporuje. Pokud je identifikátor URI zadaný pro assemblyFile adresu FTP, sestavení se nenačte. Žádná výjimka se nevyvolá.

assemblyFile může být absolutní nebo relativní vzhledem k aktuálnímu adresáři.

Sestavení mohou být načtena do jednoho ze tří kontextů nebo mohou být načtena bez kontextu:

  • Kontext načtení obsahuje sestavení zjištěných sondou: v globální mezipaměti GAC, v úložišti sestavení hostitele, pokud je modul runtime hostovaný, nebo v ApplicationBase doméně PrivateBinPath a aplikace. Většina přetížení metody načítá Load sestavení do tohoto kontextu.

  • Kontext načítání obsahuje sestavení, pro která uživatel zadal cestu, která není zahrnuta v adresářích prohledána sondou. LoadFrom, CreateInstanceFroma ExecuteAssembly jsou příklady metod, které se načítají podle cesty.

    Počínaje .NET Framework 4, pokud identifikátor URI assemblyFile určuje vzdálené umístění, načítání sestavení je ve výchozím nastavení zakázáno a LoadFrom metoda vyvolá FileLoadException. Pokud chcete povolit spuštění kódu načteného ze vzdálených umístění, můžete použít <loadFromRemoteSources> element konfigurace.

  • Kontext jen pro reflexi obsahuje sestavení načtená pomocí ReflectionOnlyLoad metod a ReflectionOnlyLoadFrom ; kód v těchto kontextech nelze spustit.

  • Pokud uživatel vygeneroval nebo našel sestavení, není v žádném kontextu. To platí pro sestavení načtená pomocí přetížení Load metody, která určují pole bajtů obsahující sestavení, a pro přechodná dynamická sestavení vytvořená s odrazem emitují a neukládají se na disk.

Kontext načítání umožňuje načtení sestavení z cesty, která není zahrnuta do sondování, a přesto umožňuje nalezení a načtení závislostí na této cestě, protože informace o cestě jsou udržovány kontextem.

Metoda LoadFrom má následující nevýhody. Zvažte místo toho použití Load .

  • Pokud je již načteno sestavení se stejnou identitou, LoadFrom vrátí načtené sestavení i v případě, že byla zadána jiná cesta.

  • Pokud je sestavení načteno pomocí LoadFroma později se sestavení v kontextu načtení pokusí načíst stejné sestavení podle zobrazovaného názvu, pokus o načtení se nezdaří. K tomu může dojít při deserializaci sestavení.

  • Pokud je sestavení načteno s LoadFroma cesta sondy obsahuje sestavení se stejnou identitou, ale v jiném umístění, může dojít k neočekávanému InvalidCastExceptionchování , MissingMethodExceptionnebo jinému neočekávanému chování.

  • LoadFrom požadavky FileIOPermissionAccess.Read a FileIOPermissionAccess.PathDiscovery, nebo WebPermissionna zadané cestě.

  • Pokud nativní bitová kopie pro assemblyFileexistuje, nepoužívá se. Sestavení nelze načíst jako doménově neutrální.

To, zda jsou určitá oprávnění udělena nebo nebyla udělena sestavení, je založena na důkazech. Pravidla pro slučování důkazů o sestavení a zabezpečení jsou následující:

  • Pokud použijete metodu LoadFrom bez Evidence parametru, sestavení je načteno s důkazy, které zavaděč poskytuje.

  • Když použijete metodu LoadFrom s parametrem Evidence , části důkazů se sloučí. Důkazy poskytnuté jako argument metody LoadFrom nahrazují důkazy dodané zavaděčem.

  • Pokud zavoláte tuto metodu více než jednou ve stejném sestavení, ale s jiným důkazy zadané, common language runtime nevyvolá FileLoadException chybu, protože rovnost a integritu různých specifikací důkazu nelze určit. Důkazy, které jsou nejprve úspěšné, jsou důkazy, které se používají.

  • Když použijete metodu LoadFrom s parametrem Byte[] k načtení obrázku COFF (Common Object File Format), důkazy se zkombinují. ZoneSite a Url jsou zděděny z volajícího sestavení a Hash a StrongName jsou převzaty ze sestavení COFF.

  • Pokud použijete metodu LoadFrom s parametrem Byte[] a Evidence k načtení image COFF, použije se pouze dodaný důkaz. Důkazy o volajícím sestavení a důkaz o obrázku COFF jsou ignorovány.

Viz také

Platí pro