Assembly.LoadFrom Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte sestavení.
Přetížení
LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm) |
Zastaralé.
Zastaralé.
Načte sestavení s názvem souboru nebo cestou, bezpečnostními důkazy, hodnotou hash a hashovacím algoritmem. |
LoadFrom(String, Byte[], AssemblyHashAlgorithm) |
Načte sestavení s názvem souboru nebo cestou, hodnotou hash a algoritmem hash. |
LoadFrom(String) |
Načte sestavení s názvem souboru nebo cestou. |
LoadFrom(String, Evidence) |
Zastaralé.
Zastaralé.
Načte sestavení s názvem souboru nebo cestou a poskytne důkazy zabezpečení. |
Poznámky
Počínaje .NET Framework 4 je ve výchozím nastavení zakázaná možnost spouštění kódu v sestaveních načtených ze vzdálených umístění a volání LoadFrom
metody vyvolá FileLoadExceptionchybu . Pokud chcete načíst sestavení a spustit jeho kód, musíte provést následující:
Explicitně vytvořte sandbox pro sestavení. (Viz Postupy: Spuštění částečně důvěryhodného kódu v sandboxu.)
Spusťte kód sestavení v plné důvěryhodnosti nastavením
enabled
atributu elementu<loadFromRemoteSources>
konfigurace natrue
. Další informace najdete v článku o elementu<loadFromRemoteSources>
konfigurace.
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.
Upozornění
Toto rozhraní API je teď zastaralé.
Načte sestavení s názvem souboru nebo cestou, bezpečnostními důkazy, hodnotou hash a hashovacím algoritmem.
public:
static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member LoadFrom : string * System.Security.Policy.Evidence * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member LoadFrom : string * System.Security.Policy.Evidence * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
[<System.Obsolete>]
static member LoadFrom : string * System.Security.Policy.Evidence * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly
Parametry
- assemblyFile
- String
Název nebo cesta souboru, který obsahuje manifest sestavení.
- securityEvidence
- Evidence
Důkaz pro načtení sestavení.
- hashValue
- Byte[]
Hodnota počítaného kódu hash.
- hashAlgorithm
- AssemblyHashAlgorithm
Algoritmus hash 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
nebyl nalezen nebo modul, který se pokoušíte načíst, nezadává příponu názvu souboru.
Soubor, který byl nalezen, nelze načíst.
-nebo-
Není securityEvidence
nejednoznačné a je určeno, že je neplatné.
-nebo-
Možnost spouštění kódu ve vzdálených sestaveních je zakázaná. Viz <loadFromRemoteSources>.
assemblyFile
není platné sestavení; Například 32bitové sestavení v 64bitovém procesu. Další informace najdete v tématu výjimky.
-nebo-
Verze 2.0 nebo novější modulu CLR (Common Language Runtime) je aktuálně načtená a assemblyFile
zkompilována s novější verzí.
Základ kódu, který nezačíná na "file://", byl zadán bez požadovaného WebPermission.
Parametr assemblyFile
je prázdný řetězec ("").
Název sestavení překračuje 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í k aktuálnímu adresáři a sestavení se načte do domény volajícího.
Sestavení je možné načíst do jednoho ze tří kontextů nebo je lze načíst bez kontextu:
Kontext zatížení obsahuje sestavení nalezená pomocí sondy: v GAC, v úložišti sestavení hostitele, pokud je modul runtime hostovaný nebo v ApplicationBase doméně aplikace a PrivateBinPath v doméně aplikace. Většina přetížení Load sestavení metody načte do tohoto kontextu.
Load-from context obsahuje sestavení, pro která uživatel zadal cestu, která nebyla zahrnuta do adresářů prohledáných pomocí sondy. LoadFrom, CreateInstanceFroma ExecuteAssembly jsou příklady metod, které načítají podle cesty.
Počínaje .NET Framework 4, pokud identifikátor URI
assemblyFile
určuje vzdálené umístění, načtení sestavení je ve výchozím nastavení zakázané aLoadFrom
metoda vyvolá FileLoadException. Pokud chcete povolit spouštění kódu načteného ze vzdálených umístění, můžete použít<loadFromRemoteSources>
konfigurační prvek.Kontext jen pro reflexi obsahuje sestavení načtená s ReflectionOnlyLoad metodami a ReflectionOnlyLoadFrom metodami. 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í bajtové pole obsahující sestavení, a na přechodná dynamická sestavení vytvořená s generováním odrazu a neuložená na disk.
Načtení z kontextu umožňuje načtení sestavení z cesty, která není součástí probírá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, vrátí načtené sestavení i LoadFrom v případě, že byla zadána jiná cesta.
Pokud se sestavení načte a LoadFrompozději se sestavení v kontextu načtení pokusí načíst stejné sestavení podle zobrazovaného názvu, pokus o načtení selže. K tomu může dojít, když je sestavení deserializováno.
Pokud je sestavení načteno LoadFroma cesta probing obsahuje sestavení se stejnou identitou, ale jiné umístění, může InvalidCastExceptionMissingMethodExceptiondojít k jinému nebo jinému neočekávanému chování.
LoadFrom požadavky FileIOPermissionAccess.Read a , FileIOPermissionAccess.PathDiscoverynebo WebPermission, na zadané cestě.
Pokud existuje nativní image,
assemblyFile
nepoužívá se. Sestavení nelze načíst jako neutrální doménu.V .NET Framework verze 1.0 a 1.1 se zásady nepoužijí.
Zda jsou určitá oprávnění udělena nebo nejsou udělena sestavení, jsou založena na důkazech. Pravidla slučování sestav a bezpečnostních důkazů jsou následující:
Pokud použijete metodu LoadFrom bez Evidence parametru, sestavení se načte důkazem, že zavaděč dodává.
Při použití LoadFrom metody s parametrem Evidence se sloučí části důkazů. Kusy důkazů poskytnuté jako argument metody LoadFrom nahrazují části důkazů poskytnuté zavaděčem.
Pokud tuto metodu zavoláte vícekrát na stejném sestavení, ale s jiným důkazem zadaným, modul clr (Common Language Runtime) nevyvolá FileLoadException , protože nelze určit rovnost a integritu různých specifikací důkazů. Důkazem, že první úspěch je důkaz, který se používá.
Při použití LoadFrom metody s parametrem
Byte[]
k načtení běžného obrázku formátu souboru objektu (COFF) se důkazy zkombinují.Zone
aUrl
Site
dědí se z volajícího sestavení aHash
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 zadaný důkaz. Důkazy o volajícím shromáždění a důkazu image COFF se ignorují.
Platí pro
LoadFrom(String, Byte[], AssemblyHashAlgorithm)
Načte sestavení s názvem souboru nebo cestou, hodnotou hash a algoritmem hash.
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 souboru, který obsahuje manifest sestavení.
- hashValue
- Byte[]
Hodnota počítaného kódu hash.
- hashAlgorithm
- AssemblyHashAlgorithm
Algoritmus hash 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, nezadá příponu názvu souboru.
Soubor, který byl nalezen, nelze načíst.
-nebo-
Možnost spouštění kódu ve vzdálených sestaveních je zakázaná. Viz <loadFromRemoteSources>.
assemblyFile
není platné sestavení; Například 32bitové sestavení v 64bitovém procesu. Další informace najdete v tématu výjimky.
-nebo-
assemblyFile
byl zkompilován s novější verzí modulu CLR (Common Language Runtime), než je aktuálně načtená verze.
Základ kódu, který nezačíná na "file://", byl zadán bez požadovaného WebPermission.
Parametr assemblyFile
je prázdný řetězec ("").
Název sestavení překračuje 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í k aktuálnímu adresáři a sestavení se načte do domény volajícího.
Sestavení je možné načíst do jednoho ze tří kontextů nebo je lze načíst bez kontextu:
Kontext načítání obsahuje sestavení nalezená pomocí sondy: v globální mezipaměti sestavení, v úložišti sestavení hostitele, pokud je modul runtime hostovaný nebo v ApplicationBase doméně aplikace a PrivateBinPath v doméně aplikace. Většina přetížení Load sestavení metody načte do tohoto kontextu.
Načtení z kontextu obsahuje sestavení, pro která uživatel zadal cestu, která není součástí probírání. LoadFrom, CreateInstanceFroma ExecuteAssembly jsou příklady metod, které načítají podle cesty.
Počínaje .NET Framework 4, pokud identifikátor URI
assemblyFile
určuje vzdálené umístění, načtení sestavení je ve výchozím nastavení zakázané aLoadFrom
metoda vyvolá FileLoadException. Pokud chcete povolit spouštění kódu načteného ze vzdálených umístění, můžete použít<loadFromRemoteSources>
konfigurační prvek.Kontext jen pro reflexi obsahuje sestavení načtená s ReflectionOnlyLoad metodami a ReflectionOnlyLoadFrom metodami. 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í bajtové pole obsahující sestavení, a na přechodná dynamická sestavení vytvořená s generováním odrazu a neuložená na disk.
Načtení kontextu umožňuje načtení sestavení z cesty, která není součástí probírá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, vrátí načtené sestavení i LoadFrom v případě, že byla zadána jiná cesta.
Pokud se sestavení načte a LoadFrompozději se sestavení v kontextu načtení pokusí načíst stejné sestavení podle zobrazovaného názvu, pokus o načtení selže. K tomu může dojít, když je sestavení deserializováno.
Pokud je sestavení načteno LoadFroma cesta probing obsahuje sestavení se stejnou identitou, ale jiné umístění, může InvalidCastExceptionMissingMethodExceptiondojít k jinému nebo jinému neočekávanému chování.
LoadFrom požadavky FileIOPermissionAccess.Read a , FileIOPermissionAccess.PathDiscoverynebo WebPermission, na zadané cestě.
Pokud existuje nativní image,
assemblyFile
nepoužívá se. Sestavení nelze načíst jako neutrální doménu.
Sestavení je načteno důkazem, že zavaděč dodává.
Platí pro
LoadFrom(String)
Načte sestavení s názvem souboru nebo cestou.
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 souboru, který obsahuje manifest sestavení.
Návraty
Načtení sestavení.
Výjimky
assemblyFile
je null
.
assemblyFile
nebyl nalezen nebo modul, který se pokoušíte načíst, nezadává příponu názvu souboru.
Soubor, který byl nalezen, nelze načíst.
-nebo-
Možnost spouštění kódu ve vzdálených sestaveních je zakázaná. Viz <loadFromRemoteSources>.
assemblyFile
není platné sestavení; Například 32bitové sestavení v 64bitovém procesu. Další informace najdete v tématu výjimky.
-nebo-
Verze 2.0 nebo novější modulu CLR (Common Language Runtime) je aktuálně načtená a assemblyFile
zkompilována s novější verzí.
Základ kódu, který nezačíná na "file://", byl zadán bez požadovaného WebPermission.
Parametr assemblyFile
je prázdný řetězec ("").
Název sestavení překračuje 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í k aktuálnímu adresáři a sestavení se načte do domény volajícího.
Sestavení je možné načíst do jednoho ze tří kontextů nebo je lze načíst bez kontextu:
Kontext zatížení obsahuje sestavení nalezená pomocí sondy: v GAC, v úložišti sestavení hostitele, pokud je modul runtime hostovaný nebo v ApplicationBase doméně aplikace a PrivateBinPath v doméně aplikace. Většina přetížení Load sestavení metody načte do tohoto kontextu.
Load-from context obsahuje sestavení, pro která uživatel zadal cestu, která nebyla zahrnuta do adresářů prohledáných pomocí sondy. LoadFrom, CreateInstanceFroma ExecuteAssembly jsou příklady metod, které načítají podle cesty.
Počínaje .NET Framework 4, pokud identifikátor URI
assemblyFile
určuje vzdálené umístění, načtení sestavení je ve výchozím nastavení zakázané aLoadFrom
metoda vyvolá FileLoadException. Pokud chcete povolit spouštění kódu načteného ze vzdálených umístění, můžete použít<loadFromRemoteSources>
konfigurační prvek.Kontext jen pro reflexi obsahuje sestavení načtená s ReflectionOnlyLoad metodami a ReflectionOnlyLoadFrom metodami. 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í bajtové pole obsahující sestavení, a na přechodná dynamická sestavení vytvořená s generováním odrazu a neuložená na disk.
Načtení z kontextu umožňuje načtení sestavení z cesty, která není součástí probírá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čítání, vrátí načtené sestavení i LoadFrom v případě, že byla zadána jiná cesta.
Sestavení lze načíst do kontextu načítání, i když sestavení se stejnou identitou existuje v kontextu načítání. Interoperabilita mezi dvěma sestaveními nebude fungovat, což vede k chybám, jako jsou InvalidCastException, MissingMethodExceptionnebo jiné neočekávané chování.
Volání LoadFrom s umístěním, které je v cestě probing, načte sestavení v kontextu zatížení a ne v kontextu načítání.
Pokud se předá LoadFromsoubor sestavení, jehož identita je předána zásadou přesměrování vazby, použije se zásada a sestavení se načte z cesty probírání v kontextu načítání.
Pokud se sestavení načte do kontextu načítání a později se sestavení v kontextu načtení pokusí načíst stejné sestavení podle zobrazovaného názvu, pokus o načtení selže. K tomu může dojít, když je sestavení deserializováno.
LoadFrom požadavky FileIOPermissionAccess.Read a , FileIOPermissionAccess.PathDiscoverynebo WebPermission, na zadané cestě.
Pokud existuje nativní image,
assemblyFile
nepoužívá se. Sestavení nelze načíst jako neutrální doménu.V .NET Framework verze 1.0 a 1.1 se zásady nepoužijí.
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.
Upozornění
Toto rozhraní API je teď zastaralé.
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);
[System.Obsolete]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence);
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence) As Assembly
Parametry
- assemblyFile
- String
Název nebo cesta 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
nebyl nalezen nebo modul, který se pokoušíte načíst, nezadává příponu názvu souboru.
Soubor, který byl nalezen, nelze načíst.
-nebo-
Není securityEvidence
nejednoznačné a je určeno, že je neplatné.
-nebo-
Možnost spouštění kódu ve vzdálených sestaveních je zakázaná. Viz <loadFromRemoteSources>.
assemblyFile
není platné sestavení; Například 32bitové sestavení v 64bitovém procesu. Další informace najdete v tématu výjimky.
-nebo-
Verze 2.0 nebo novější modulu CLR (Common Language Runtime) je aktuálně načtená a assemblyFile
zkompilována s novější verzí.
Základ kódu, který nezačíná na "file://", byl zadán bez požadovaného WebPermission.
Parametr assemblyFile
je prázdný řetězec ("").
Název sestavení překračuje 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í k aktuálnímu adresáři a sestavení se načte do domény volajícího.
Sestavení je možné načíst do jednoho ze tří kontextů nebo je lze načíst bez kontextu:
Kontext zatížení obsahuje sestavení nalezená pomocí sondy: v GAC, v úložišti sestavení hostitele, pokud je modul runtime hostovaný nebo v ApplicationBase doméně aplikace a PrivateBinPath v doméně aplikace. Většina přetížení Load sestavení metody načte do tohoto kontextu.
Load-from context obsahuje sestavení, pro která uživatel zadal cestu, která nebyla zahrnuta do adresářů prohledáných pomocí sondy. LoadFrom, CreateInstanceFroma ExecuteAssembly jsou příklady metod, které načítají podle cesty.
Počínaje .NET Framework 4, pokud identifikátor URI
assemblyFile
určuje vzdálené umístění, načtení sestavení je ve výchozím nastavení zakázané aLoadFrom
metoda vyvolá FileLoadException. Pokud chcete povolit spouštění kódu načteného ze vzdálených umístění, můžete použít<loadFromRemoteSources>
konfigurační prvek.Kontext jen pro reflexi obsahuje sestavení načtená s ReflectionOnlyLoad metodami a ReflectionOnlyLoadFrom metodami. 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í bajtové pole obsahující sestavení, a na přechodná dynamická sestavení vytvořená s generováním odrazu a neuložená na disk.
Načtení z kontextu umožňuje načtení sestavení z cesty, která není součástí probírá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, vrátí načtené sestavení i LoadFrom v případě, že byla zadána jiná cesta.
Pokud se sestavení načte a LoadFrompozději se sestavení v kontextu načtení pokusí načíst stejné sestavení podle zobrazovaného názvu, pokus o načtení selže. K tomu může dojít, když je sestavení deserializováno.
Pokud je sestavení načteno LoadFroma cesta probing obsahuje sestavení se stejnou identitou, ale jiné umístění, může InvalidCastExceptionMissingMethodExceptiondojít k jinému nebo jinému neočekávanému chování.
LoadFrom požadavky FileIOPermissionAccess.Read a , FileIOPermissionAccess.PathDiscoverynebo WebPermission, na zadané cestě.
Pokud existuje nativní image,
assemblyFile
nepoužívá se. Sestavení nelze načíst jako neutrální doménu.V .NET Framework verze 1.0 a 1.1 se zásady nepoužijí.
Zda jsou určitá oprávnění udělena nebo nejsou udělena sestavení, jsou založena na důkazech. Pravidla slučování sestav a bezpečnostních důkazů jsou následující:
Pokud použijete metodu LoadFrom bez Evidence parametru, sestavení se načte důkazem, že zavaděč dodává.
Při použití LoadFrom metody s parametrem Evidence se sloučí části důkazů. Kusy důkazů poskytnuté jako argument metody LoadFrom nahrazují části důkazů poskytnuté zavaděčem.
Pokud tuto metodu zavoláte vícekrát na stejném sestavení, ale s jiným důkazem zadaným, modul clr (Common Language Runtime) nevyvolá FileLoadException , protože nelze určit rovnost a integritu různých specifikací důkazů. Důkazem, že první úspěch je důkaz, který se používá.
Při použití LoadFrom metody s parametrem
Byte[]
k načtení běžného obrázku formátu souboru objektu (COFF) se důkazy zkombinují.Zone
aUrl
Site
dědí se z volajícího sestavení aHash
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 zadaný důkaz. Důkazy o volajícím shromáždění a důkazu image COFF se ignorují.