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 hashovacím algoritmem. |
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 bezpečnostní důkazy. |
Poznámky
Počínaje rozhraním .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<loadFromRemoteSources>
elementu 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á příponu názvu souboru.
Soubor, který byl nalezen, nelze načíst.
-nebo-
Není securityEvidence
nejednoznačný a je určen jako 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čtena 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 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čítá do tohoto kontextu.
Kontext načtení 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é se načítají podle cesty.
Počínaje rozhraním .NET Framework 4, pokud identifikátor URI
assemblyFile
určuje vzdálené umístění, je načítání sestavení 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 metodami ReflectionOnlyLoad 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í bajtové pole obsahující sestavení, a pro přechodná dynamická sestavení vytvořená s reflexí generují a neukládají se 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 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 sestavení se stejnou identitou již načteno, LoadFrom vrátí načtené sestavení i v případě, že byla zadána jiná cesta.
Pokud je sestavení načteno 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 pro sondování obsahuje sestavení se stejnou identitou, ale jiné umístění, může InvalidCastExceptionMissingMethodExceptiondojít k neočekávanému chování nebo jinému neočekávanému chování.
LoadFrom požadavky FileIOPermissionAccess.Read a FileIOPermissionAccess.PathDiscoverynebo WebPermission, na zadané cestě.
Pokud nativní image existuje,
assemblyFile
nepoužívá se. Sestavení nelze načíst jako neutrální doménu.V rozhraní .NET Framework verze 1.0 a 1.1 se zásady nepoužijí.
Jestli jsou určitá oprávnění udělena nebo nejsou udělena sestavení, je založena na důkazech. Pravidla pro sloučení důkazů o sestavení a zabezpečení jsou následující:
Pokud použijete metodu LoadFrom bez Evidence parametru, sestavení se načte s 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 LoadFrom metody nahrazují části důkazů dodané zavaděčem.
Pokud tuto metodu voláte vícekrát ve stejném sestavení, ale s jiným zadaným důkazem, 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í společné image formátu souboru objektu (COFF) se důkazy zkombinují.Zone
aUrl
Site
jsou zděděny 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 sestavení 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 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 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
byla zkompilována 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 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čítá do tohoto kontextu.
Kontext load-from obsahuje sestavení, pro která uživatel zadal cestu, která není součástí probírání. LoadFrom, CreateInstanceFroma ExecuteAssembly jsou příklady metod, které se načítají podle cesty.
Počínaje rozhraním .NET Framework 4, pokud identifikátor URI
assemblyFile
určuje vzdálené umístění, je načítání sestavení 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 metodami ReflectionOnlyLoad 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í bajtové pole obsahující sestavení, a pro přechodná dynamická sestavení vytvořená s reflexí generují a neukládají se 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, LoadFrom vrátí načtené sestavení i v případě, že byla zadána jiná cesta.
Pokud je sestavení načteno 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 pro sondování obsahuje sestavení se stejnou identitou, ale jiné umístění, může InvalidCastExceptionMissingMethodExceptiondojít k neočekávanému chování nebo jinému neočekávanému chování.
LoadFrom požadavky FileIOPermissionAccess.Read a FileIOPermissionAccess.PathDiscoverynebo WebPermission, na zadané cestě.
Pokud nativní image existuje,
assemblyFile
nepoužívá se. Sestavení nelze načíst jako neutrální doménu.
Sestavení je načteno důkazy, ž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á 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čtena 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 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čítá do tohoto kontextu.
Kontext načtení 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é se načítají podle cesty.
Počínaje rozhraním .NET Framework 4, pokud identifikátor URI
assemblyFile
určuje vzdálené umístění, je načítání sestavení 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 metodami ReflectionOnlyLoad 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í bajtové pole obsahující sestavení, a pro přechodná dynamická sestavení vytvořená s reflexí generují a neukládají se 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 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 sestavení se stejnou identitou již načteno v kontextu načtení z kontextu, LoadFrom vrátí načtené sestavení i v případě, že byla zadána jiná cesta.
Sestavení lze načíst do kontextu načtení z kontextu, 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 InvalidCastExceptionjsou , MissingMethodExceptionnebo jiné neočekávané chování.
Volání LoadFrom s umístěním, které je v cestě pro sondování, načte sestavení v kontextu zatížení, a ne v kontextu načítání.
Pokud se předá LoadFromsoubor sestavení, jehož identita je goverened pomocí zásady přesměrování vazby, použije se zásada a sestavení se načte z cesty pro sondování v kontextu načtení.
Pokud se sestavení načte do kontextu načtení 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 nativní image existuje,
assemblyFile
nepoužívá se. Sestavení nelze načíst jako neutrální doménu.V rozhraní .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 bezpečnostní důkazy.
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á příponu názvu souboru.
Soubor, který byl nalezen, nelze načíst.
-nebo-
Není securityEvidence
nejednoznačný a je určen jako 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čtena 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 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čítá do tohoto kontextu.
Kontext načtení 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é se načítají podle cesty.
Počínaje rozhraním .NET Framework 4, pokud identifikátor URI
assemblyFile
určuje vzdálené umístění, je načítání sestavení 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 metodami ReflectionOnlyLoad 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í bajtové pole obsahující sestavení, a pro přechodná dynamická sestavení vytvořená s reflexí generují a neukládají se 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 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 sestavení se stejnou identitou již načteno, LoadFrom vrátí načtené sestavení i v případě, že byla zadána jiná cesta.
Pokud je sestavení načteno 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 pro sondování obsahuje sestavení se stejnou identitou, ale jiné umístění, může InvalidCastExceptionMissingMethodExceptiondojít k neočekávanému chování nebo jinému neočekávanému chování.
LoadFrom požadavky FileIOPermissionAccess.Read a FileIOPermissionAccess.PathDiscoverynebo WebPermission, na zadané cestě.
Pokud nativní image existuje,
assemblyFile
nepoužívá se. Sestavení nelze načíst jako neutrální doménu.V rozhraní .NET Framework verze 1.0 a 1.1 se zásady nepoužijí.
Jestli jsou určitá oprávnění udělena nebo nejsou udělena sestavení, je založena na důkazech. Pravidla pro sloučení důkazů o sestavení a zabezpečení jsou následující:
Pokud použijete metodu LoadFrom bez Evidence parametru, sestavení se načte s 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 LoadFrom metody nahrazují části důkazů dodané zavaděčem.
Pokud tuto metodu voláte vícekrát ve stejném sestavení, ale s jiným zadaným důkazem, 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í společné image formátu souboru objektu (COFF) se důkazy zkombinují.Zone
aUrl
Site
jsou zděděny 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 sestavení a důkazu image COFF se ignorují.