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
| LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm) |
Nieaktualne.
Nieaktualne.
Ładuje zestaw pod nazwą pliku lub ścieżką, dowodami zabezpieczeń, wartością skrótu i algorytmem skrótu. |
| LoadFrom(String, Byte[], AssemblyHashAlgorithm) |
Ładuje zestaw pod nazwą pliku lub ścieżką, wartością skrótu i algorytmem skrótu. |
| LoadFrom(String) |
Ładuje zestaw pod nazwą pliku lub ścieżką. |
| LoadFrom(String, Evidence) |
Nieaktualne.
Nieaktualne.
Ładuje zestaw pod nazwą pliku lub ścieżką i dostarcza dowód bezpieczeństwa. |
Uwagi
Począwszy od .NET Framework 4, możliwość wykonywania kodu w zestawach załadowanych z lokalizacji zdalnych jest domyślnie wyłączona, a wywołanie LoadFrom metody zgłasza błąd FileLoadException. Aby załadować zestaw i wykonać jego kod, należy wykonać jedną z następujących czynności:
Jawnie utwórz piaskownicę dla zestawu. (Zobacz Instrukcje: uruchamianie częściowo zaufanego kodu w piaskownicy).
Uruchom kod zestawu w pełnym zaufaniu, ustawiając
enabledatrybut<loadFromRemoteSources>elementu konfiguracji natrue. Aby uzyskać więcej informacji, zobacz artykuł dotyczący<loadFromRemoteSources>elementu konfiguracji.
LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
Przestroga
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.
Przestroga
Ten interfejs API jest już przestarzały.
Ł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);
[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
Nazwa lub ścieżka pliku zawierającego manifest zestawu.
- securityEvidence
- Evidence
Dowód ładowania 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
assemblyFile to 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-
Możliwość wykonywania kodu w zestawach zdalnych jest wyłączona. Zobacz <loadFromRemoteSources>.
assemblyFile nie jest prawidłowym zestawem; na przykład zestaw 32-bitowy w procesie 64-bitowym. Aby uzyskać więcej informacji, zobacz temat wyjątku.
-lub-
Wersja 2.0 lub nowsza środowiska uruchomieniowego języka wspólnego jest obecnie ładowana i assemblyFile została skompilowana przy użyciu nowszej wersji.
Baza kodu, która nie rozpoczyna się od ciągu "file://", została określona bez wymaganego elementu WebPermission.
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
Protokół transferu plików (FTP) nie jest obsługiwany. Jeśli podany assemblyFile identyfikator URI jest adresem FTP, zestaw nie zostanie załadowany. Wyjątek nie jest zgłaszany.
assemblyFile może być bezwzględny lub względny względem bieżącego katalogu, a zestaw jest ładowany do domeny obiektu wywołującego.
Zestawy można załadować do jednego z trzech kontekstów lub można załadować bez kontekstu:
Kontekst ładowania zawiera zestawy znalezione przez sondowanie: w usłudze GAC w magazynie zestawów hosta, jeśli środowisko uruchomieniowe jest hostowane, lub w ApplicationBase domenie aplikacji i PrivateBinPath . Większość przeciążeń zestawów Load metody ładuje w tym kontekście.
Kontekst load-from zawiera zestawy, dla których użytkownik dostarczył ścieżkę nieuwzględnianą w katalogach przeszukanych przez sondowanie. LoadFrom, CreateInstanceFromi ExecuteAssembly są przykładami metod ładowanych według ścieżki.
Począwszy od .NET Framework 4, jeśli identyfikator URI
assemblyFileokreśla lokalizację zdalną, ładowanie zestawu jest domyślnie wyłączone, aLoadFrommetoda zgłasza FileLoadExceptionwartość . Aby włączyć wykonywanie kodu załadowanego z lokalizacji zdalnych, można użyć<loadFromRemoteSources>elementu konfiguracji.Kontekst tylko odbicia zawiera zestawy załadowane za pomocą ReflectionOnlyLoad metod i ReflectionOnlyLoadFrom . Nie można wykonać kodu w tych kontekstach.
Jeśli użytkownik wygenerował lub znalazł zestaw, nie jest w żadnym kontekście. Dotyczy to zestawów ładowanych przy użyciu przeciążeń metody, które określają tablicę bajtów zawierającą zestaw oraz przejściowe zestawy Load dynamiczne utworzone z emitowaniem odbicia i nie są zapisywane na dysku.
Kontekst ładowania umożliwia załadowanie zestawu ze ścieżki nieuwzględnionej w sondowaniu, a jednak umożliwia odnalezienie i załadowanie zależności na tej ścieżce, ponieważ informacje o ścieżce są przechowywane 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. Może się to zdarzyć, 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 nieoczekiwane zachowanie.
LoadFromFileIOPermissionAccess.Read wymagania i FileIOPermissionAccess.PathDiscovery, lub WebPermission, w określonej ścieżce.
Jeśli istnieje obraz natywny dla
assemblyFileprogramu , nie jest używany. Nie można załadować zestawu jako neutralnego dla domeny.W .NET Framework w wersji 1.0 i 1.1 zasady nie są stosowane.
To, czy określone uprawnienia są przyznane do zestawu, czy nie, zależy od dowodów. Zasady scalania kompilowania asemblera 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.
Gdy używasz LoadFrom metody z parametrem Evidence , elementy dowodów są scalane. 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. Używanym dowodem jest dowód na to, że odniesie się sukces za pierwszym razem.
W przypadku użycia LoadFrom metody z parametrem
Byte[]w celu załadowania obrazu wspólnego formatu pliku obiektów (COFF) dowody są łączone.Zone,UrliSitesą dziedziczone z zestawu wywołującego iHashStrongNamesą pobierane z zestawu COFF.W przypadku użycia LoadFrom metody z parametrem
Byte[]i Evidence załadowania obrazu COFF jest używany tylko dostarczony dowód. Dowody wywoływanego zestawu i dowodów obrazu COFF są ignorowane.
Dotyczy
LoadFrom(String, Byte[], 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);
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
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.
Wyjątki
assemblyFile to 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-
Możliwość wykonywania kodu w zestawach zdalnych jest wyłączona. Zobacz <loadFromRemoteSources>.
assemblyFile nie jest prawidłowym zestawem; na przykład zestaw 32-bitowy w procesie 64-bitowym. Aby uzyskać więcej informacji, zobacz temat wyjątku.
-lub-
assemblyFile został skompilowany przy użyciu nowszej wersji środowiska uruchomieniowego języka wspólnego niż wersja, która jest obecnie załadowana.
Baza kodu, która nie rozpoczyna się od "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
Protokół transferu plików (FTP) nie jest obsługiwany. Jeśli podany assemblyFile identyfikator URI jest adresem FTP, zestaw nie zostanie załadowany. Wyjątek nie jest zgłaszany.
assemblyFile może być bezwzględny lub względny względem bieżącego katalogu, a zestaw jest ładowany do domeny obiektu wywołującego.
Zestawy można załadować do jednego z trzech kontekstów lub można 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ń zestawów Load metody ładuje w tym kontekście.
Kontekst load-from zawiera zestawy, dla których użytkownik dostarczył ścieżkę, która nie jest uwzględniona w sondowaniu. LoadFrom, CreateInstanceFromi ExecuteAssembly są przykładami metod ładowanych według ścieżki.
Począwszy od .NET Framework 4, jeśli identyfikator URI
assemblyFileokreśla lokalizację zdalną, ładowanie zestawu jest domyślnie wyłączone, aLoadFrommetoda zgłasza FileLoadExceptionwartość . Aby włączyć wykonywanie kodu załadowanego z lokalizacji zdalnych, można użyć<loadFromRemoteSources>elementu konfiguracji.Kontekst tylko odbicia zawiera zestawy załadowane za pomocą ReflectionOnlyLoad metod i ReflectionOnlyLoadFrom . Nie można wykonać kodu w tych kontekstach.
Jeśli użytkownik wygenerował lub znalazł zestaw, nie jest w żadnym kontekście. Dotyczy to zestawów ładowanych przy użyciu przeciążeń metody, które określają tablicę bajtów zawierającą zestaw oraz przejściowe zestawy Load dynamiczne utworzone z emitowaniem odbicia i nie są zapisywane na dysku.
Kontekst ładowania 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 od tej ścieżki, ponieważ informacje o ścieżce są przechowywane 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. Może się to zdarzyć, 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 nieoczekiwane zachowanie.
LoadFromFileIOPermissionAccess.Read wymagania i FileIOPermissionAccess.PathDiscovery, lub WebPermission, w określonej ścieżce.
Jeśli istnieje obraz natywny dla
assemblyFileprogramu , nie jest używany. Nie można załadować zestawu jako neutralnego dla domeny.
Zestaw jest ładowany z dowodami, że moduł ładujący dostarcza.
Dotyczy
LoadFrom(String)
Ładuje zestaw pod nazwą pliku lub ścieżką.
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
Nazwa lub ścieżka pliku zawierającego manifest zestawu.
Zwraca
Załadowany zestaw.
Wyjątki
assemblyFile to 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-
Możliwość wykonywania kodu w zestawach zdalnych jest wyłączona. Zobacz <loadFromRemoteSources>.
assemblyFile nie jest prawidłowym zestawem; na przykład zestaw 32-bitowy w procesie 64-bitowym. Aby uzyskać więcej informacji, zobacz temat wyjątku.
-lub-
Wersja 2.0 lub nowsza środowiska uruchomieniowego języka wspólnego jest obecnie ładowana i assemblyFile została skompilowana z nowszą wersją.
Baza kodu, która nie rozpoczyna się od "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.
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
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
Protokół transferu plików (FTP) nie jest obsługiwany. Jeśli podany assemblyFile identyfikator URI jest adresem FTP, zestaw nie zostanie załadowany. Wyjątek nie jest zgłaszany.
assemblyFile może być bezwzględny lub względny względem bieżącego katalogu, a zestaw jest ładowany do domeny obiektu wywołującego.
Zestawy można załadować do jednego z trzech kontekstów lub można załadować bez kontekstu:
Kontekst ładowania zawiera zestawy znalezione przez sondowanie: w usłudze GAC w magazynie zestawów hosta, jeśli środowisko uruchomieniowe jest hostowane, lub w ApplicationBase domenie aplikacji i PrivateBinPath . Większość przeciążeń zestawów Load metody ładuje w tym kontekście.
Kontekst load-from zawiera zestawy, dla których użytkownik dostarczył ścieżkę nieuwzględnianą w katalogach przeszukanych przez sondowanie. LoadFrom, CreateInstanceFromi ExecuteAssembly są przykładami metod ładowanych według ścieżki.
Począwszy od .NET Framework 4, jeśli identyfikator URI
assemblyFileokreśla lokalizację zdalną, ładowanie zestawu jest domyślnie wyłączone, aLoadFrommetoda zgłasza FileLoadExceptionwartość . Aby włączyć wykonywanie kodu załadowanego z lokalizacji zdalnych, można użyć<loadFromRemoteSources>elementu konfiguracji.Kontekst tylko odbicia zawiera zestawy załadowane za pomocą ReflectionOnlyLoad metod i ReflectionOnlyLoadFrom . Nie można wykonać kodu w tych kontekstach.
Jeśli użytkownik wygenerował lub znalazł zestaw, nie jest w żadnym kontekście. Dotyczy to zestawów ładowanych przy użyciu przeciążeń metody, które określają tablicę bajtów zawierającą zestaw oraz przejściowe zestawy Load dynamiczne utworzone z emitowaniem odbicia i nie są zapisywane na dysku.
Kontekst ładowania umożliwia załadowanie zestawu ze ścieżki nieuwzględnionej w sondowaniu, a jednak umożliwia odnalezienie i załadowanie zależności na tej ścieżce, ponieważ informacje o ścieżce są przechowywane 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 w kontekście obciążenia, zwraca załadowany zestaw, LoadFrom 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 LoadFrom z lokalizacją znajdującą się w ścieżce sondowania spowoduje załadowanie zestawu w kontekście ładowania, a nie w kontekście ładowania.
Jeśli do pliku zestawu, którego tożsamość jest przekazywana przez zasady LoadFromprzekierowania powiązania, zostaną zastosowane zasady, a zestaw zostanie załadowany ze ścieżki sondowania w kontekście obciążenia.
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 nie powiedzie się. Może się to zdarzyć, gdy zestaw jest deserializowany.
LoadFromFileIOPermissionAccess.Read wymagania i FileIOPermissionAccess.PathDiscovery, lub WebPermission, w określonej ścieżce.
Jeśli istnieje obraz natywny dla
assemblyFileprogramu , nie jest używany. Nie można załadować zestawu jako neutralnego dla domeny.W .NET Framework w wersji 1.0 i 1.1 zasady nie są stosowane.
Dotyczy
LoadFrom(String, Evidence)
Przestroga
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.
Przestroga
Ten interfejs API jest już przestarzały.
Ładuje zestaw pod nazwą pliku lub ścieżką i dostarcza dowód bezpieczeństwa.
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
Nazwa lub ścieżka pliku zawierającego manifest zestawu.
- securityEvidence
- Evidence
Dowód ładowania zestawu.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
assemblyFile to 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-
Możliwość wykonywania kodu w zestawach zdalnych jest wyłączona. Zobacz <loadFromRemoteSources>.
assemblyFile nie jest prawidłowym zestawem; na przykład zestaw 32-bitowy w procesie 64-bitowym. Aby uzyskać więcej informacji, zobacz temat wyjątku.
-lub-
Wersja 2.0 lub nowsza środowiska uruchomieniowego języka wspólnego jest obecnie ładowana i assemblyFile została skompilowana z nowszą wersją.
Baza kodu, która nie rozpoczyna się od "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
Protokół transferu plików (FTP) nie jest obsługiwany. Jeśli podany assemblyFile identyfikator URI jest adresem FTP, zestaw nie zostanie załadowany. Wyjątek nie jest zgłaszany.
assemblyFile może być bezwzględny lub względny względem bieżącego katalogu, a zestaw jest ładowany do domeny obiektu wywołującego.
Zestawy można załadować do jednego z trzech kontekstów lub można załadować bez kontekstu:
Kontekst ładowania zawiera zestawy znalezione przez sondowanie: w usłudze GAC w magazynie zestawów hosta, jeśli środowisko uruchomieniowe jest hostowane, lub w ApplicationBase domenie aplikacji i PrivateBinPath . Większość przeciążeń zestawów Load metody ładuje w tym kontekście.
Kontekst load-from zawiera zestawy, dla których użytkownik dostarczył ścieżkę nieuwzględnianą w katalogach przeszukanych przez sondowanie. LoadFrom, CreateInstanceFromi ExecuteAssembly są przykładami metod ładowanych według ścieżki.
Począwszy od .NET Framework 4, jeśli identyfikator URI
assemblyFileokreśla lokalizację zdalną, ładowanie zestawu jest domyślnie wyłączone, aLoadFrommetoda zgłasza FileLoadExceptionwartość . Aby włączyć wykonywanie kodu załadowanego z lokalizacji zdalnych, można użyć<loadFromRemoteSources>elementu konfiguracji.Kontekst tylko odbicia zawiera zestawy załadowane za pomocą ReflectionOnlyLoad metod i ReflectionOnlyLoadFrom . Nie można wykonać kodu w tych kontekstach.
Jeśli użytkownik wygenerował lub znalazł zestaw, nie jest w żadnym kontekście. Dotyczy to zestawów ładowanych przy użyciu przeciążeń metody, które określają tablicę bajtów zawierającą zestaw oraz przejściowe zestawy Load dynamiczne utworzone z emitowaniem odbicia i nie są zapisywane na dysku.
Kontekst ładowania umożliwia załadowanie zestawu ze ścieżki nieuwzględnionej w sondowaniu, a jednak umożliwia odnalezienie i załadowanie zależności na tej ścieżce, ponieważ informacje o ścieżce są przechowywane 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. Może się to zdarzyć, 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 nieoczekiwane zachowanie.
LoadFromFileIOPermissionAccess.Read wymagania i FileIOPermissionAccess.PathDiscovery, lub WebPermission, w określonej ścieżce.
Jeśli istnieje obraz natywny dla
assemblyFileprogramu , nie jest używany. Nie można załadować zestawu jako neutralnego dla domeny.W .NET Framework w wersji 1.0 i 1.1 zasady nie są stosowane.
To, czy określone uprawnienia są przyznane do zestawu, czy nie, zależy od dowodów. Zasady scalania kompilowania asemblera 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.
Gdy używasz LoadFrom metody z parametrem Evidence , elementy dowodów są scalane. 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. Używanym dowodem jest dowód na to, że odniesie się sukces za pierwszym razem.
W przypadku użycia LoadFrom metody z parametrem
Byte[]w celu załadowania obrazu wspólnego formatu pliku obiektów (COFF) dowody są łączone.Zone,UrliSitesą dziedziczone z zestawu wywołującego iHashStrongNamesą pobierane z zestawu COFF.W przypadku użycia LoadFrom metody z parametrem
Byte[]i Evidence załadowania obrazu COFF jest używany tylko dostarczony dowód. Dowody wywoływanego zestawu i dowodów obrazu COFF są ignorowane.