Assembly.LoadFrom Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Ładuje zestaw.
Przeciążenia
| Nazwa | Opis |
|---|---|
| LoadFrom(String, Byte[], AssemblyHashAlgorithm) |
Przestarzałe.
Ładuje zestaw pod nazwą pliku lub ścieżką, wartością skrótu i algorytmem skrótu. |
| LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm) |
Przestarzałe.
Ładuje zestaw pod nazwą pliku lub ścieżką, dowodami zabezpieczeń, wartością skrótu i algorytmem skrótu. |
| LoadFrom(String) |
Ładuje zestaw pod nazwą pliku lub ścieżką. |
| LoadFrom(String, Evidence) |
Przestarzałe.
Ładuje zestaw pod nazwą pliku lub ścieżką i dostarcza dowód zabezpieczeń. |
Uwagi
Tylko program .NET Framework: Zobacz <loadFromRemoteSources> ładowanie zestawów z lokalizacji zdalnych.
LoadFrom(String, Byte[], AssemblyHashAlgorithm)
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
Uwaga
LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.
Ładuje zestaw pod nazwą pliku lub ścieżką, wartością skrótu i algorytmem skrótu.
public:
static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
[System.Obsolete("LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.", DiagnosticId="SYSLIB0056", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
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);
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
[<System.Obsolete("LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.", DiagnosticId="SYSLIB0056", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
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
Nazwa lub ścieżka pliku zawierającego manifest zestawu.
- hashValue
- Byte[]
Wartość obliczonego kodu skrótu.
- hashAlgorithm
- AssemblyHashAlgorithm
Algorytm skrótu używany do tworzenia skrótów plików i generowania silnej nazwy.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
Tylko platformy .NET Core i .NET 5+: we wszystkich przypadkach.
Parametr assemblyFile ma wartość null.
assemblyFile nie można odnaleźć lub moduł, który próbujesz załadować, nie określa rozszerzenia nazwy pliku.
Nie można załadować pliku, który został znaleziony.
— lub —
assemblyFile Określa lokalizację, która jest wyłączona na <podstawie obciążeniaFromRemoteSources>.
assemblyFile nie jest prawidłowym zestawem dla aktualnie załadowanego środowiska uruchomieniowego; na przykład zestaw 32-bitowy w procesie 64-bitowym.
Baza kodu, która nie rozpoczyna się od ciągu "file://", została określona bez wymaganego WebPermissionelementu .
Parametr assemblyFile jest pustym ciągiem ("").
Nazwa zestawu przekracza maksymalną długość zdefiniowaną przez system.
Uwagi
Ten interfejs API nie jest obsługiwany w programie .NET Core/.NET 5+. Ta metoda jest zgłaszana NotSupportedException po wywołaniu. Użyj LoadFrom(String) zamiast tego.
Parametr assemblyFile musi odwoływać się do identyfikatora URI bez znaków ucieczki. Ta metoda dostarcza znaki ucieczki dla wszystkich nieprawidłowych znaków w identyfikatorze URI.
Uwaga / Notatka
Protokół transferu plików (FTP) nie jest obsługiwany. Jeśli podany assemblyFile identyfikator URI jest adresem FTP, zestaw nie zostanie załadowany. Nie jest zgłaszany żaden wyjątek.
assemblyFile może być bezwzględny lub względny względem bieżącego katalogu.
Zestawy można załadować do jednego z trzech kontekstów lub można je załadować bez kontekstu:
Kontekst ładowania zawiera zestawy znalezione przez sondowanie: w globalnej pamięci podręcznej zestawów w magazynie zestawów hosta, jeśli środowisko uruchomieniowe jest hostowane, lub w ApplicationBase domenie aplikacji i PrivateBinPath . Większość przeciążeń metody ładuje zestawy Load do tego kontekstu.
Kontekst load-from zawiera zestawy, dla których użytkownik podał ścieżkę, która nie jest uwzględniona w sondowaniu. LoadFrom, CreateInstanceFromi ExecuteAssembly to przykłady metod, które ładują się według ścieżki.
Zobacz
<loadFromRemoteSources>ładowanie zestawów z lokalizacji zdalnych.Kontekst tylko odbicia zawiera zestawy załadowane z metodami ReflectionOnlyLoad i ReflectionOnlyLoadFrom ; nie można wykonać kodu w tych kontekstach.
Jeśli użytkownik wygenerował lub znalazł zestaw, nie znajduje się w żadnym kontekście. Dotyczy to zestawów załadowanych przy użyciu przeciążeń metody, które określają tablicę bajtów Load zawierającą zestaw, oraz do przejściowych zestawów dynamicznych utworzonych z emisją odbicia i nie zapisanych na dysku.
Kontekst load-from umożliwia załadowanie zestawu ze ścieżki, która nie jest uwzględniona w sondowaniu, a jednak umożliwia odnalezienie i załadowanie zależności na tej ścieżce, ponieważ informacje o ścieżce są utrzymywane przez kontekst.
Metoda LoadFrom ma następujące wady. Rozważ użycie Load zamiast tego.
Jeśli zestaw z tą samą tożsamością jest już załadowany, zwraca załadowany zestaw, LoadFrom nawet jeśli określono inną ścieżkę.
Jeśli zestaw jest ładowany z elementem LoadFrom, a później zestaw w kontekście ładowania próbuje załadować ten sam zestaw według nazwy wyświetlanej, próba załadowania zakończy się niepowodzeniem. Taka sytuacja może wystąpić, gdy zestaw jest deserializowany.
Jeśli zestaw jest ładowany z elementem LoadFrom, a ścieżka sondowania zawiera zestaw z tą samą tożsamością, ale inną lokalizacją, może wystąpić nieoczekiwane zachowanie , InvalidCastExceptionMissingMethodExceptionlub inne.
LoadFrom żąda FileIOPermissionAccess.Read oraz FileIOPermissionAccess.PathDiscovery lub WebPermission, w określonej ścieżce.
Jeśli istnieje obraz macierzysty dla
assemblyFileelementu , nie jest używany. Nie można załadować zestawu jako neutralnego pod względem domeny.
Zestaw jest ładowany z dowodami, że moduł ładujący dostarcza.
Dotyczy
LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
Uwaga
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.
Ładuje zestaw pod nazwą pliku lub ścieżką, dowodami zabezpieczeń, wartością skrótu i algorytmem skrótu.
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
Nazwa lub ścieżka pliku zawierającego manifest zestawu.
- securityEvidence
- Evidence
Dowody na załadowanie zestawu.
- hashValue
- Byte[]
Wartość obliczonego kodu skrótu.
- hashAlgorithm
- AssemblyHashAlgorithm
Algorytm skrótu używany do tworzenia skrótów plików i generowania silnej nazwy.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
Parametr assemblyFile ma wartość null.
assemblyFile nie można odnaleźć lub moduł, który próbujesz załadować, nie określa rozszerzenia nazwy pliku.
Nie można załadować pliku, który został znaleziony.
— lub —
Element securityEvidence nie jest niejednoznaczny i jest określany jako nieprawidłowy.
— lub —
assemblyFile Określa lokalizację, która jest wyłączona na <podstawie obciążeniaFromRemoteSources>.
assemblyFile nie jest prawidłowym zestawem dla aktualnie załadowanego środowiska uruchomieniowego; na przykład zestaw 32-bitowy w procesie 64-bitowym.
Baza kodu, która nie rozpoczyna się od ciągu "file://", została określona bez wymaganego WebPermissionelementu .
Parametr assemblyFile jest pustym ciągiem ("").
Nazwa zestawu przekracza maksymalną długość zdefiniowaną przez system.
Uwagi
Parametr assemblyFile musi odwoływać się do identyfikatora URI bez znaków ucieczki. Ta metoda dostarcza znaki ucieczki dla wszystkich nieprawidłowych znaków w identyfikatorze URI.
Uwaga / Notatka
Protokół transferu plików (FTP) nie jest obsługiwany. Jeśli podany assemblyFile identyfikator URI jest adresem FTP, zestaw nie zostanie załadowany. Nie jest zgłaszany żaden wyjątek.
assemblyFile może być bezwzględny lub względny względem bieżącego katalogu.
Zestawy można załadować do jednego z trzech kontekstów lub można je załadować bez kontekstu:
Kontekst ładowania zawiera zestawy znalezione przez sondowanie: w GAC, w magazynie zestawów hosta, jeśli środowisko uruchomieniowe jest hostowane, lub w ApplicationBase domenie aplikacji i PrivateBinPath . Większość przeciążeń metody ładuje zestawy Load do tego kontekstu.
Kontekst load-from zawiera zestawy, dla których użytkownik dostarczył ścieżkę nieuwzględnianą w katalogach przeszukanych przez sondowanie. LoadFrom, CreateInstanceFromi ExecuteAssembly to przykłady metod, które ładują się według ścieżki.
Zobacz
<loadFromRemoteSources>ładowanie zestawów z lokalizacji zdalnych.Kontekst tylko odbicia zawiera zestawy załadowane z metodami ReflectionOnlyLoad i ReflectionOnlyLoadFrom ; nie można wykonać kodu w tych kontekstach.
Jeśli użytkownik wygenerował lub znalazł zestaw, nie znajduje się w żadnym kontekście. Dotyczy to zestawów załadowanych przy użyciu przeciążeń metody, które określają tablicę bajtów Load zawierającą zestaw, oraz do przejściowych zestawów dynamicznych utworzonych z emisją odbicia i nie zapisanych na dysku.
Kontekst load-from umożliwia załadowanie zestawu ze ścieżki nieuwzględnianej do sondowania, a jednak umożliwia odnalezienie i załadowanie zależności na tej ścieżce, ponieważ informacje o ścieżce są utrzymywane przez kontekst.
Metoda LoadFrom ma następujące wady. Rozważ użycie Load zamiast tego.
Jeśli zestaw z tą samą tożsamością jest już załadowany, zwraca załadowany zestaw, LoadFrom nawet jeśli określono inną ścieżkę.
Jeśli zestaw jest ładowany z elementem LoadFrom, a później zestaw w kontekście ładowania próbuje załadować ten sam zestaw według nazwy wyświetlanej, próba załadowania zakończy się niepowodzeniem. Taka sytuacja może wystąpić, gdy zestaw jest deserializowany.
Jeśli zestaw jest ładowany z elementem LoadFrom, a ścieżka sondowania zawiera zestaw z tą samą tożsamością, ale inną lokalizacją, może wystąpić nieoczekiwane zachowanie , InvalidCastExceptionMissingMethodExceptionlub inne.
LoadFrom żąda FileIOPermissionAccess.Read oraz FileIOPermissionAccess.PathDiscovery lub WebPermission, w określonej ścieżce.
Jeśli istnieje obraz macierzysty dla
assemblyFileelementu , nie jest używany. Nie można załadować zestawu jako neutralnego dla domeny.
Czy zgromadzeniu przyznaje się pewne uprawnienia, czy nie, zależy to od dowodów. Reguły scalania zestawów i dowodów zabezpieczeń są następujące:
Jeśli używasz LoadFrom metody bez Evidence parametru, zestaw jest ładowany z dowodami, że moduł ładujący dostarcza.
W przypadku użycia LoadFrom metody z parametrem Evidence scalane są elementy dowodów. Dowody dostarczone jako argument LoadFrom metody zastępuje dowody dostarczone przez moduł ładujący.
Jeśli wywołasz tę metodę więcej niż raz w tym samym zestawie, ale z określonymi innymi dowodami, środowisko uruchomieniowe języka wspólnego nie zgłasza FileLoadException wartości, ponieważ nie można określić równości i integralności różnych specyfikacji dowodów. Dowód, który po raz pierwszy się powiedzie, to dowody, które są używane.
W przypadku użycia LoadFrom metody z parametrem
Byte[]w celu załadowania obrazu wspólnego formatu pliku obiektu (COFF) dowody są łączone.ZoneUrliSitesą dziedziczone z zestawu wywołującego iHashStrongNamesą pobierane z zestawu COFF.Jeśli używasz LoadFrom metody z parametrem
Byte[]i Evidence do ładowania obrazu COFF, używane są tylko dostarczone dowody. Dowody na wywoływane zgromadzenie i dowody obrazu COFF są ignorowane.
Dotyczy
LoadFrom(String)
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
Ładuje zestaw pod nazwą pliku lub ścieżką.
public:
static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile);
public static System.Reflection.Assembly LoadFrom(string assemblyFile);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member LoadFrom : string -> System.Reflection.Assembly
static member LoadFrom : string -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String) As Assembly
Parametry
- assemblyFile
- String
Nazwa lub ścieżka pliku zawierającego manifest zestawu.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
Parametr assemblyFile ma wartość null.
assemblyFile nie można odnaleźć lub moduł, który próbujesz załadować, nie określa rozszerzenia nazwy pliku.
Nie można załadować pliku, który został znaleziony.
— lub —
Tylko program .NET Framework: assemblyFile określa lokalizację, która jest wyłączona na <podstawie obciążeniaFromRemoteSources>.
assemblyFile nie jest prawidłowym zestawem dla aktualnie załadowanego środowiska uruchomieniowego; na przykład zestaw 32-bitowy w procesie 64-bitowym.
Baza kodu, która nie rozpoczyna się od ciągu "file://", została określona bez wymaganego WebPermissionelementu .
Parametr assemblyFile jest pustym ciągiem ("").
Nazwa zestawu przekracza maksymalną długość zdefiniowaną przez system.
Przykłady
Poniższy przykład ładuje zestaw pod nazwą pliku lub ścieżką.
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
Uwagi
Ten interfejs API jest obecny na platformie .NET Core w celu zachowania zgodności, ale zaleca się użycie AssemblyLoadContext przeciążeń.
Zestaw jest ładowany do domyślnego elementu AssemblyLoadContext. Aby uzyskać więcej informacji na temat ładowania zestawu, zobacz Managed assembly loading algorithm (Algorytm ładowania zestawu zarządzanego).
Parametr assemblyFile musi odwoływać się do identyfikatora URI bez znaków ucieczki. Ta metoda dostarcza znaki ucieczki dla wszystkich nieprawidłowych znaków w identyfikatorze URI.
Uwaga / Notatka
Tylko program .NET Framework: protokół TRANSFERU plików (FTP) nie jest obsługiwany. Jeśli podany assemblyFile identyfikator URI jest adresem FTP, zestaw nie zostanie załadowany. Nie jest zgłaszany żaden wyjątek.
assemblyFile może być bezwzględny lub względny względem bieżącego katalogu.
Tylko program .NET Framework: Zestawy można załadować do jednego z trzech kontekstów lub można je załadować bez kontekstu:
Kontekst ładowania zawiera zestawy znalezione przez sondowanie: w GAC, w magazynie zestawów hosta, jeśli środowisko uruchomieniowe jest hostowane, lub w ApplicationBase domenie aplikacji i PrivateBinPath . Większość przeciążeń metody ładuje zestawy Load do tego kontekstu.
Kontekst load-from zawiera zestawy, dla których użytkownik dostarczył ścieżkę nieuwzględnianą w katalogach przeszukanych przez sondowanie. Umożliwia również odnalezienie i załadowanie zależności od tej ścieżki, ponieważ informacje o ścieżce są obsługiwane przez kontekst. LoadFrom, CreateInstanceFromi ExecuteAssembly to przykłady metod, które ładują się według ścieżki.
Zobacz
<loadFromRemoteSources>ładowanie zestawów z lokalizacji zdalnych.Kontekst tylko odbicia zawiera zestawy załadowane z metodami ReflectionOnlyLoad i ReflectionOnlyLoadFrom ; nie można wykonać kodu w tych kontekstach.
Jeśli użytkownik wygenerował lub znalazł zestaw, nie znajduje się w żadnym kontekście. Dotyczy to zestawów załadowanych przy użyciu przeciążeń metody, które określają tablicę bajtów Load zawierającą zestaw, oraz do przejściowych zestawów dynamicznych utworzonych z emisją odbicia i nie zapisanych na dysku.
Metoda LoadFrom ma następujące wady. Rozważ użycie Load zamiast tego.
Jeśli zestaw z tą samą tożsamością jest już załadowany w kontekście ładowania-źródła, LoadFrom zwraca załadowany zestaw, nawet jeśli określono inną ścieżkę.
Zestaw można załadować w kontekście ładowania, mimo że zestaw o tej samej tożsamości istnieje w kontekście ładowania. Współdziałanie dwóch zestawów nie będzie działać, co prowadzi do błędów, takich jak InvalidCastException, MissingMethodExceptionlub inne nieoczekiwane zachowanie.
Wywołanie z LoadFrom lokalizacją znajdującą się w ścieżce sondowania spowoduje załadowanie zestawu w kontekście ładowania, a nie w kontekście ładowania.
Jeśli plik zestawu, którego tożsamość jest przekazywana przez zasady przekierowania powiązania, zostanie przekazany do LoadFrom, zasady zostaną zastosowane, a zestaw zostanie załadowany ze ścieżki sondowania w kontekście ładowania.
Jeśli zestaw jest ładowany w kontekście ładowania, a później zestaw w kontekście ładowania próbuje załadować ten sam zestaw według nazwy wyświetlanej, próba załadowania zakończy się niepowodzeniem. Taka sytuacja może wystąpić, gdy zestaw jest deserializowany.
LoadFrom żąda FileIOPermissionAccess.Read oraz FileIOPermissionAccess.PathDiscovery lub WebPermission, w określonej ścieżce.
Jeśli istnieje obraz macierzysty dla
assemblyFileelementu , nie jest używany. Nie można załadować zestawu jako neutralnego dla domeny.
Dotyczy
LoadFrom(String, Evidence)
Uwaga
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.
Ładuje zestaw pod nazwą pliku lub ścieżką i dostarcza dowód zabezpieczeń.
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
Nazwa lub ścieżka pliku zawierającego manifest zestawu.
- securityEvidence
- Evidence
Dowody na załadowanie zestawu.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
Parametr assemblyFile ma wartość null.
assemblyFile nie można odnaleźć lub moduł, który próbujesz załadować, nie określa rozszerzenia nazwy pliku.
Nie można załadować pliku, który został znaleziony.
— lub —
Element securityEvidence nie jest niejednoznaczny i jest określany jako nieprawidłowy.
— lub —
assemblyFile Określa lokalizację, która jest wyłączona na <podstawie obciążeniaFromRemoteSources>.
assemblyFile nie jest prawidłowym zestawem dla aktualnie załadowanego środowiska uruchomieniowego; na przykład zestaw 32-bitowy w procesie 64-bitowym.
Baza kodu, która nie rozpoczyna się od ciągu "file://", została określona bez wymaganego WebPermissionelementu .
Parametr assemblyFile jest pustym ciągiem ("").
Nazwa zestawu przekracza maksymalną długość zdefiniowaną przez system.
Uwagi
Parametr assemblyFile musi odwoływać się do identyfikatora URI bez znaków ucieczki. Ta metoda dostarcza znaki ucieczki dla wszystkich nieprawidłowych znaków w identyfikatorze URI.
Uwaga / Notatka
Protokół transferu plików (FTP) nie jest obsługiwany. Jeśli podany assemblyFile identyfikator URI jest adresem FTP, zestaw nie zostanie załadowany. Nie jest zgłaszany żaden wyjątek.
assemblyFile może być bezwzględny lub względny względem bieżącego katalogu.
Zestawy można załadować do jednego z trzech kontekstów lub można je załadować bez kontekstu:
Kontekst ładowania zawiera zestawy znalezione przez sondowanie: w GAC, w magazynie zestawów hosta, jeśli środowisko uruchomieniowe jest hostowane, lub w ApplicationBase domenie aplikacji i PrivateBinPath . Większość przeciążeń metody ładuje zestawy Load do tego kontekstu.
Kontekst load-from zawiera zestawy, dla których użytkownik dostarczył ścieżkę nieuwzględnianą w katalogach przeszukanych przez sondowanie. LoadFrom, CreateInstanceFromi ExecuteAssembly to przykłady metod, które ładują się według ścieżki.
Zobacz
<loadFromRemoteSources>ładowanie zestawów z lokalizacji zdalnych.Kontekst tylko odbicia zawiera zestawy załadowane z metodami ReflectionOnlyLoad i ReflectionOnlyLoadFrom ; nie można wykonać kodu w tych kontekstach.
Jeśli użytkownik wygenerował lub znalazł zestaw, nie znajduje się w żadnym kontekście. Dotyczy to zestawów załadowanych przy użyciu przeciążeń metody, które określają tablicę bajtów Load zawierającą zestaw, oraz do przejściowych zestawów dynamicznych utworzonych z emisją odbicia i nie zapisanych na dysku.
Kontekst load-from umożliwia załadowanie zestawu ze ścieżki nieuwzględnianej do sondowania, a jednak umożliwia odnalezienie i załadowanie zależności na tej ścieżce, ponieważ informacje o ścieżce są utrzymywane przez kontekst.
Metoda LoadFrom ma następujące wady. Rozważ użycie Load zamiast tego.
Jeśli zestaw z tą samą tożsamością jest już załadowany, zwraca załadowany zestaw, LoadFrom nawet jeśli określono inną ścieżkę.
Jeśli zestaw jest ładowany z elementem LoadFrom, a później zestaw w kontekście ładowania próbuje załadować ten sam zestaw według nazwy wyświetlanej, próba załadowania zakończy się niepowodzeniem. Taka sytuacja może wystąpić, gdy zestaw jest deserializowany.
Jeśli zestaw jest ładowany z elementem LoadFrom, a ścieżka sondowania zawiera zestaw z tą samą tożsamością, ale inną lokalizacją, może wystąpić nieoczekiwane zachowanie , InvalidCastExceptionMissingMethodExceptionlub inne.
LoadFrom żąda FileIOPermissionAccess.Read oraz FileIOPermissionAccess.PathDiscovery lub WebPermission, w określonej ścieżce.
Jeśli istnieje obraz macierzysty dla
assemblyFileelementu , nie jest używany. Nie można załadować zestawu jako neutralnego dla domeny.
Czy zgromadzeniu przyznaje się pewne uprawnienia, czy nie, zależy to od dowodów. Reguły scalania zestawów i dowodów zabezpieczeń są następujące:
Jeśli używasz LoadFrom metody bez Evidence parametru, zestaw jest ładowany z dowodami, że moduł ładujący dostarcza.
W przypadku użycia LoadFrom metody z parametrem Evidence scalane są elementy dowodów. Dowody dostarczone jako argument LoadFrom metody zastępuje dowody dostarczone przez moduł ładujący.
Jeśli wywołasz tę metodę więcej niż raz w tym samym zestawie, ale z określonymi innymi dowodami, środowisko uruchomieniowe języka wspólnego nie zgłasza FileLoadException wartości, ponieważ nie można określić równości i integralności różnych specyfikacji dowodów. Dowód, który po raz pierwszy się powiedzie, to dowody, które są używane.
W przypadku użycia LoadFrom metody z parametrem
Byte[]w celu załadowania obrazu wspólnego formatu pliku obiektu (COFF) dowody są łączone.ZoneUrliSitesą dziedziczone z zestawu wywołującego iHashStrongNamesą pobierane z zestawu COFF.Jeśli używasz LoadFrom metody z parametrem
Byte[]i Evidence do ładowania obrazu COFF, używane są tylko dostarczone dowody. Dowody na wywoływane zgromadzenie i dowody obrazu COFF są ignorowane.