Assembly.Load 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
Load(Byte[], Byte[], SecurityContextSource) |
Ładuje zestaw z obrazem opartym na formacie wspólnego pliku obiektu (COFF) zawierającym emitowany zestaw, opcjonalnie w tym symbole i określając źródło kontekstu zabezpieczeń. |
Load(Byte[], Byte[], Evidence) |
Przestarzałe.
Ładuje zestaw ze wspólnym obrazem opartym na pliku obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie w tym symbole i dowody dla zestawu. |
Load(String, Evidence) |
Przestarzałe.
Ładuje zestaw pod nazwą wyświetlaną i używa dostarczonego dowodu. |
Load(AssemblyName, Evidence) |
Przestarzałe.
Ładuje zestaw przy użyciu elementu AssemblyName. Zestaw jest ładowany przy użyciu dostarczonych dowodów. |
Load(Byte[]) |
Ładuje zestaw ze wspólnym obrazem opartym na pliku obiektu (COFF) zawierającym emitowany zestaw. |
Load(String) |
Ładuje zestaw o określonej nazwie. |
Load(AssemblyName) |
Ładuje zestaw przy użyciu elementu AssemblyName. |
Load(Byte[], Byte[]) |
Ładuje zestaw przy użyciu wspólnego obrazu opartego na pliku obiektu (COFF) zawierającego emitowany zestaw, opcjonalnie w tym symbole zestawu. |
Load(Byte[], Byte[], SecurityContextSource)
Ładuje zestaw z obrazem opartym na formacie wspólnego pliku obiektu (COFF) zawierającym emitowany zestaw, opcjonalnie w tym symbole i określając źródło kontekstu zabezpieczeń.
public:
static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore, System::Security::SecurityContextSource securityContextSource);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.SecurityContextSource securityContextSource);
static member Load : byte[] * byte[] * System.Security.SecurityContextSource -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityContextSource As SecurityContextSource) As Assembly
Parametry
- rawAssembly
- Byte[]
Tablica bajtów, która jest obrazem w formacie COFF, zawierającym emitowany zestaw.
- rawSymbolStore
- Byte[]
Tablica bajtów zawierająca nieprzetworzone bajty reprezentujące symbole zestawu.
- securityContextSource
- SecurityContextSource
Źródło kontekstu zabezpieczeń.
Zwraca
Załadowany zestaw.
Wyjątki
rawAssembly
to null
.
rawAssembly
nie jest prawidłowym zestawem aktualnie załadowanego środowiska uruchomieniowego.
Wartość nie securityContextSource
jest jedną z wartości wyliczenia.
Uwagi
Zestaw jest ładowany do domeny aplikacji obiektu wywołującego przy użyciu określonego źródła dla kontekstu zabezpieczeń. Jeśli rawSymbolStore
został określony, nieprzetworzone bajty reprezentujące symbole zestawu są również ładowane.
Dotyczy
Load(Byte[], Byte[], Evidence)
Przestroga
This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.
Ładuje zestaw ze wspólnym obrazem opartym na pliku obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie w tym symbole i dowody dla zestawu.
public:
static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, 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 Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
static member Load : byte[] * byte[] * 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 Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityEvidence As Evidence) As Assembly
Parametry
- rawAssembly
- Byte[]
Tablica bajtów, która jest obrazem w formacie COFF, zawierającym emitowany zestaw.
- rawSymbolStore
- Byte[]
Tablica bajtów zawierająca nieprzetworzone bajty reprezentujące symbole zestawu.
- securityEvidence
- Evidence
Dowód ładowania zestawu.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
rawAssembly
to null
.
rawAssembly
nie jest prawidłowym zestawem aktualnie załadowanego środowiska uruchomieniowego.
Zestaw lub moduł został załadowany dwukrotnie z dwoma różnymi dowodami.
securityEvidence
nie null
jest . Domyślnie starsze zasady CAS nie są włączone w .NET Framework 4; jeśli nie jest włączona, securityEvidence
musi być null
.
Uwagi
To przeciążenie metody zawsze tworzy nowy Assembly obiekt we własnym izolowanym kontekście obciążenia.
Zestaw jest ładowany przy użyciu dostarczonych dowodów. Załadowano również nieprzetworzone bajty reprezentujące symbole zestawu.
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 Load metody bez Evidence parametru, zestaw jest ładowany z dowodami, że moduł ładujący dostarcza.
Gdy używasz Load metody z parametrem Evidence , elementy dowodów są scalane. Dowody dostarczone jako argument Load metody zastępuje dowody dostarczone przez moduł ładujący.
W przypadku Load użycia przeciążenia metody z parametrem
Byte[]
w celu załadowania obrazu COFF dowody są dziedziczone z zestawu wywołującego.W przypadku użycia Load 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.
Jeśli metoda jest wywoływana Load 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.
Dotyczy
Load(String, Evidence)
Przestroga
This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.
Ładuje zestaw pod nazwą wyświetlaną i używa dostarczonego dowodu.
public:
static System::Reflection::Assembly ^ Load(System::String ^ assemblyString, System::Security::Policy::Evidence ^ assemblySecurity);
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
static member Load : 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 Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String, assemblySecurity As Evidence) As Assembly
Parametry
- assemblyString
- String
Wyświetlana nazwa zestawu.
- assemblySecurity
- Evidence
Dowód ładowania zestawu.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
assemblyString
to null
.
assemblyString
nie można odnaleźć.
assemblyString
nie jest prawidłowym zestawem aktualnie załadowanego środowiska uruchomieniowego.
Nie można załadować pliku, który został znaleziony.
-lub-
Zestaw lub moduł został załadowany dwukrotnie z dwoma różnymi dowodami.
Uwagi
FileLoadException jest zgłaszany, jeśli assemblyString
określa pełną nazwę zestawu, a pierwszy zestaw zgodny z prostą nazwą ma inną wersję, kulturę lub token klucza publicznego. Moduł ładujący nie kontynuuje sondowania dla innych zestawów, które są zgodne z prostą nazwą.
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 Load metody bez Evidence parametru, zestaw jest ładowany z dowodami, że moduł ładujący dostarcza.
Gdy używasz Load metody z parametrem Evidence , elementy dowodów są scalane. Dowody dostarczone jako argument Load metody zastępuje dowody dostarczone przez moduł ładujący.
W przypadku Load użycia przeciążenia metody z parametrem
Byte[]
w celu załadowania obrazu wspólnego formatu pliku obiektów (COFF), dowody są dziedziczone z zestawu wywołującego.W przypadku użycia Load 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.
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 wersji 2.0 środowiska .NET Framework architektura procesora jest dodawana do tożsamości zestawu i może być określona jako część zestawu ciągu nazw. Na przykład "ProcessorArchitecture = msil". Jednak zalecanym sposobem określenia nazwy zestawu jest utworzenie AssemblyName obiektu i przekazanie go do odpowiedniego Load przeciążenia metody. Zobacz: .
Zobacz też
Dotyczy
Load(AssemblyName, Evidence)
Przestroga
This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.
Ładuje zestaw przy użyciu elementu AssemblyName. Zestaw jest ładowany przy użyciu dostarczonych dowodów.
public:
static System::Reflection::Assembly ^ Load(System::Reflection::AssemblyName ^ assemblyRef, System::Security::Policy::Evidence ^ assemblySecurity);
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
static member Load : System.Reflection.AssemblyName * 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 Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyRef As AssemblyName, assemblySecurity As Evidence) As Assembly
Parametry
- assemblyRef
- AssemblyName
Obiekt opisujący zestaw do załadowania.
- assemblySecurity
- Evidence
Dowód ładowania zestawu.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
assemblyRef
to null
.
assemblyRef
nie można odnaleźć.
assemblyRef
nie jest prawidłowym zestawem aktualnie załadowanego środowiska uruchomieniowego.
Zestaw lub moduł został załadowany dwukrotnie z dwoma różnymi dowodami.
-lub-
assemblyRef
określa zestaw zdalny, ale możliwość wykonywania kodu w zestawach zdalnych jest wyłączona. Zobacz <loadFromRemoteSources>.
Uwagi
FileLoadException jest zgłaszany, jeśli assemblyRef
określa pełną nazwę zestawu, a pierwszy zestaw zgodny z prostą nazwą ma inną wersję, kulturę lub token klucza publicznego. Moduł ładujący nie kontynuuje sondowania dla innych zestawów, które są zgodne z prostą nazwą. Począwszy od .NET Framework 4, ponieważ wykonywanie kodu w zestawach zdalnych jest domyślnie wyłączone, FileLoadException jest również zgłaszane, jeśli assemblyRef
określa zestaw zdalny. Aby włączyć wykonywanie kodu załadowanego z lokalizacji zdalnych, można użyć <loadFromRemoteSources>
elementu konfiguracji.
Uwaga
Nie należy używać elementu AssemblyName z tylko zestawem CodeBase właściwości. Właściwość CodeBase nie dostarcza żadnych elementów tożsamości zestawu (takich jak nazwa lub wersja), dlatego ładowanie nie występuje zgodnie z regułami ładowania według tożsamości, jak można oczekiwać od Load metody . Zamiast tego zestaw jest ładowany przy użyciu reguł ładowania. Aby uzyskać informacje o wadach używania obciążenia z kontekstu, zobacz Assembly.LoadFrom przeciążenie metody lub najlepsze rozwiązania dotyczące ładowania zestawów.
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 Load metody bez Evidence parametru, zestaw jest ładowany z dowodami, że moduł ładujący dostarcza.
Gdy używasz Load metody z parametrem Evidence , elementy dowodów są scalane. Dowody dostarczone jako argument Load metody zastępuje dowody dostarczone przez moduł ładujący.
W przypadku Load użycia przeciążenia metody z parametrem
Byte[]
w celu załadowania obrazu wspólnego formatu pliku obiektów (COFF), dowody są dziedziczone z zestawu wywołującego.W przypadku użycia Load 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.
Uwaga
AssemblyName.Name Jeśli właściwość i AssemblyName.CodeBase właściwość są ustawione, pierwsza próba załadowania zestawu używa nazwy wyświetlanej (w tym wersji, kultury itd., zwróconej przez Assembly.FullName właściwość). Jeśli plik nie zostanie znaleziony, CodeBase zostanie użyty do wyszukania zestawu. Jeśli zestaw zostanie znaleziony przy użyciu metody CodeBase, nazwa wyświetlana jest zgodna z zestawem. Jeśli dopasowanie zakończy się niepowodzeniem FileLoadException , zostanie zgłoszony błąd.
Jeśli metoda jest wywoływana Load 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.
Zobacz też
Dotyczy
Load(Byte[])
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
Ładuje zestaw ze wspólnym obrazem opartym na pliku obiektu (COFF) zawierającym emitowany zestaw.
public:
static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly);
public static System.Reflection.Assembly Load (byte[] rawAssembly);
static member Load : byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte()) As Assembly
Parametry
- rawAssembly
- Byte[]
Tablica bajtów, która jest obrazem w formacie COFF, zawierającym emitowany zestaw.
Zwraca
Załadowany zestaw.
Wyjątki
rawAssembly
to null
.
rawAssembly
nie jest prawidłowym zestawem aktualnie załadowanego środowiska uruchomieniowego.
Uwagi
To przeciążenie metody zawsze tworzy nowy Assembly obiekt we własnym izolowanym kontekście obciążenia.
.NET Framework tylko: poziom zaufania zestawu załadowanego przy użyciu tej metody jest taki sam jak poziom zaufania zestawu wywołującego. Aby załadować zestaw z tablicy bajtów z poziomem zaufania domeny aplikacji, użyj Load(Byte[], Byte[], SecurityContextSource) przeciążenia metody. Aby uzyskać więcej informacji na temat używania dowodów z przeciążeniami metody, która bierze tablice Load bajtów, zobacz Load(Byte[], Byte[], Evidence) przeciążenie metody.
Dotyczy
Load(String)
- Źródło:
- Assembly.CoreCLR.cs
- Źródło:
- Assembly.CoreCLR.cs
- Źródło:
- Assembly.CoreCLR.cs
Ładuje zestaw o określonej nazwie.
public:
static System::Reflection::Assembly ^ Load(System::String ^ assemblyString);
public static System.Reflection.Assembly Load (string assemblyString);
static member Load : string -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String) As Assembly
Parametry
- assemblyString
- String
Długa lub krótka forma nazwy zestawu.
Zwraca
Załadowany zestaw.
Wyjątki
assemblyString
to null
.
assemblyString
jest ciągiem o zerowej długości.
assemblyString
nie można odnaleźć.
Nie można załadować pliku, który został znaleziony.
assemblyString
nie jest prawidłowym zestawem aktualnie załadowanego środowiska uruchomieniowego.
Przykłady
Poniższy przykład ładuje zestaw pod w pełni kwalifikowaną nazwą i wyświetla listę wszystkich typów zawartych w określonym zestawie. Aby uzyskać informacje o sposobie uzyskania w pełni kwalifikowanej nazwy zestawu, zobacz Nazwy zestawów.
using namespace System;
using namespace System::Collections;
using namespace System::Reflection;
int main()
{
// You must supply a valid fully qualified assembly name.
Assembly^ SampleAssembly = Assembly::Load
( "SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3" );
array<Type^>^ Types = SampleAssembly->GetTypes();
// Display all the types contained in the specified assembly.
IEnumerator^ myEnum = Types->GetEnumerator();
Type^ oType;
while ( myEnum->MoveNext() )
{
oType = safe_cast<Type^>(myEnum->Current);
Console::WriteLine( oType->Name );
}
}
using System;
using System.Reflection;
class Class1
{
public static void Main()
{
// You must supply a valid fully qualified assembly name.
Assembly SampleAssembly = Assembly.Load
("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");
// Display all the types contained in the specified assembly.
foreach (Type oType in SampleAssembly.GetTypes()) {
Console.WriteLine(oType.Name);
}
}
}
Imports System.Reflection
Class Class1
Public Shared Sub Main()
' You must supply a valid fully qualified assembly name.
Dim SampleAssembly As [Assembly] = _
[Assembly].Load("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3")
Dim oType As Type
' Display all the types contained in the specified assembly.
For Each oType In SampleAssembly.GetTypes()
Console.WriteLine(oType.Name)
Next oType
End Sub 'LoadSample
End Class
Uwagi
Aby załadować prawidłowy zestaw, zaleca się wywołanie Load
metody przez przekazanie długiej formy nazwy zestawu. Długa forma nazwy zestawu składa się z jego prostej nazwy (takiej jak "System" dla zestawu System.dll) wraz z jego wersją, kulturą, tokenem klucza publicznego i opcjonalnie architekturą procesora. Odpowiada właściwości zestawu FullName . Poniższy przykład ilustruje użycie długiej nazwy do załadowania zestawu System.dll dla .NET Framework 4:
using System;
using System.Reflection;
public class Example
{
public static void Main()
{
string longName = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
Assembly assem = Assembly.Load(longName);
if (assem == null)
Console.WriteLine("Unable to load assembly...");
else
Console.WriteLine(assem.FullName);
}
}
// The example displays the following output:
// system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Imports System.Reflection
Module Example
Public Sub Main()
Dim longName As String = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
Dim assem As Assembly = Assembly.Load(longName)
If assem Is Nothing Then
Console.WriteLine("Unable to load assembly...")
Else
Console.WriteLine(assem.FullName)
End If
End Sub
End Module
' The example displays the following output:
' system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
FileLoadException jest zgłaszany, jeśli assemblyString
określa pełną nazwę zestawu, a pierwszy zestaw zgodny z prostą nazwą ma inną wersję, kulturę lub token klucza publicznego. Moduł ładujący nie kontynuuje sondowania dla innych zestawów, które są zgodne z prostą nazwą.
W wersji 2.0 środowiska .NET Framework architektura procesora jest dodawana do tożsamości zestawu i może być określona jako część zestawu ciągu nazw. Na przykład "ProcessorArchitecture = msil". Jednak zalecanym sposobem określenia nazwy zestawu jest utworzenie AssemblyName obiektu i przekazanie go do odpowiedniego Load przeciążenia metody. Zobacz: .
Zobacz też
Dotyczy
Load(AssemblyName)
- Źródło:
- Assembly.CoreCLR.cs
- Źródło:
- Assembly.CoreCLR.cs
- Źródło:
- Assembly.CoreCLR.cs
Ładuje zestaw przy użyciu elementu AssemblyName.
public:
static System::Reflection::Assembly ^ Load(System::Reflection::AssemblyName ^ assemblyRef);
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef);
static member Load : System.Reflection.AssemblyName -> System.Reflection.Assembly
Public Shared Function Load (assemblyRef As AssemblyName) As Assembly
Parametry
- assemblyRef
- AssemblyName
Obiekt opisujący zestaw do załadowania.
Zwraca
Załadowany zestaw.
Wyjątki
assemblyRef
to null
.
assemblyRef
nie można odnaleźć.
Nie można załadować pliku, który został znaleziony.
-lub-
assemblyRef
określa zestaw zdalny, ale możliwość wykonywania kodu w zestawach zdalnych jest wyłączona. Zobacz <loadFromRemoteSources>.
Uwaga: na platformie .NET dla aplikacji ze Sklepu Windows lub przenośnej biblioteki klas przechwyć wyjątek klasy bazowej , IOExceptionzamiast tego.
assemblyRef
nie jest prawidłowym zestawem aktualnie załadowanego środowiska uruchomieniowego.
Przykłady
Poniższy przykład tworzy wystąpienie AssemblyName obiektu i używa go do załadowania sysglobal.dll
zestawu. W przykładzie zostanie wyświetlona pełna nazwa typów publicznych zestawu.
using System;
using System.Reflection;
public class Example
{
public static void Main()
{
String fullName = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
"PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL";
var an = new AssemblyName(fullName);
var assem = Assembly.Load(an);
Console.WriteLine("Public types in assembly {0}:", assem.FullName);
foreach (var t in assem.GetTypes())
if (t.IsPublic)
Console.WriteLine(" {0}", t.FullName);
}
}
// The example displays the following output:
// Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
// System.Globalization.CultureAndRegionInfoBuilder
// System.Globalization.CultureAndRegionModifiers
Imports System.Reflection
Module Example
Public Sub Main()
Dim fullName As String = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
"PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL"
Dim an As New AssemblyName(fullName)
Dim assem As Assembly = Assembly.Load(an)
Console.WriteLine("Public types in assembly {0}:", assem.FullName)
For Each t As Type in assem.GetTypes()
If t.IsPublic Then Console.WriteLine(" {0}", t.FullName)
Next
End Sub
End Module
' The example displays the following output:
' Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
' System.Globalization.CultureAndRegionInfoBuilder
' System.Globalization.CultureAndRegionModifiers
Uwagi
FileLoadException jest zgłaszany, jeśli assemblyRef
określa pełną nazwę zestawu i pierwszy zestaw zgodny z prostą nazwą ma inną wersję, kulturę lub token klucza publicznego. Moduł ładujący nie kontynuuje sondowania dla innych zestawów, które są zgodne z prostą nazwą. Począwszy od .NET Framework 4, ponieważ wykonywanie kodu w zestawach zdalnych jest domyślnie wyłączone, FileLoadException jest również zgłaszane, jeśli assemblyRef
określa zestaw zdalny. Aby włączyć wykonywanie kodu załadowanego z lokalizacji zdalnych, można użyć <loadFromRemoteSources>
elementu konfiguracji.
Uwaga
Nie należy używać elementu AssemblyName z tylko zestawem CodeBase właściwości. Właściwość CodeBase nie dostarcza żadnych elementów tożsamości zestawu (takich jak nazwa lub wersja), dlatego ładowanie nie występuje zgodnie z regułami ładowania według tożsamości, jak można oczekiwać od Load metody . Zamiast tego zestaw jest ładowany przy użyciu reguł ładowania. Aby uzyskać informacje o wadach używania obciążenia z kontekstu, zobacz Assembly.LoadFrom przeciążenie metody lub najlepsze rozwiązania dotyczące ładowania zestawów.
Uwaga
AssemblyName.Name Jeśli właściwość i AssemblyName.CodeBase właściwość są ustawione, pierwsza próba załadowania zestawu używa nazwy wyświetlanej (w tym wersji, kultury itd., zwróconej przez Assembly.FullName właściwość). Jeśli plik nie zostanie znaleziony, CodeBase zostanie użyty do wyszukania zestawu. Jeśli zestaw zostanie znaleziony przy użyciu metody CodeBase, nazwa wyświetlana jest zgodna z zestawem. Jeśli dopasowanie zakończy się niepowodzeniem FileLoadException , zostanie zgłoszony błąd.
Zobacz też
Dotyczy
Load(Byte[], Byte[])
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
Ładuje zestaw przy użyciu wspólnego obrazu opartego na pliku obiektu (COFF) zawierającego emitowany zestaw, opcjonalnie w tym symbole zestawu.
public:
static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[]? rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore);
static member Load : byte[] * byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte()) As Assembly
Parametry
- rawAssembly
- Byte[]
Tablica bajtów, która jest obrazem w formacie COFF, zawierającym emitowany zestaw.
- rawSymbolStore
- Byte[]
Tablica bajtów zawierająca nieprzetworzone bajty reprezentujące symbole zestawu.
Zwraca
Załadowany zestaw.
Wyjątki
rawAssembly
to null
.
rawAssembly
nie jest prawidłowym zestawem aktualnie załadowanego środowiska uruchomieniowego.
Uwagi
To przeciążenie metody zawsze tworzy nowy Assembly obiekt we własnym izolowanym kontekście obciążenia.
.NET Framework tylko: poziom zaufania zestawu załadowanego przy użyciu tej metody jest taki sam jak poziom zaufania zestawu wywołującego. Aby załadować zestaw z tablicy bajtów z poziomem zaufania domeny aplikacji, użyj Load(Byte[], Byte[], SecurityContextSource) przeciążenia metody. Aby uzyskać więcej informacji na temat używania dowodów z przeciążeniami metody, która bierze tablice Load bajtów, zobacz Load(Byte[], Byte[], Evidence) przeciążenie metody.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla