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
| Nazwa | Opis |
|---|---|
| Load(Byte[], Byte[], SecurityContextSource) |
Ładuje zestaw ze wspólnym obrazem opartym na pliku obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie zawierający 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, biorąc pod uwagę jego AssemblyNamewartość . Zestaw jest ładowany przy użyciu dostarczonych dowodów. |
| Load(Byte[]) |
Ładuje zestaw ze wspólnym obrazem opartym na pliku obiektów (COFF) zawierającym emitowany zestaw. |
| Load(String) |
Ładuje zestaw o określonej nazwie. |
| Load(AssemblyName) |
Ładuje zestaw, biorąc pod uwagę jego AssemblyNamewartość . |
| Load(Byte[], Byte[]) |
Ładuje zestaw ze wspólnym obrazem opartym na pliku obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie w tym symbole zestawu. |
Load(Byte[], Byte[], SecurityContextSource)
Ładuje zestaw ze wspólnym obrazem opartym na pliku obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie zawierający 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 opartym na 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
Parametr rawAssembly ma wartość null.
rawAssembly nie jest prawidłowym zestawem dla aktualnie załadowanego środowiska uruchomieniowego.
Wartość elementu securityContextSource nie 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 kontekstu zabezpieczeń. Jeśli rawSymbolStore określono, nieprzetworzone bajty reprezentujące symbole zestawu również są ładowane.
Dotyczy
Load(Byte[], Byte[], Evidence)
Uwaga
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 opartym na coFF zawierającym emitowany zestaw.
- rawSymbolStore
- Byte[]
Tablica bajtów zawierająca nieprzetworzone bajty reprezentujące symbole zestawu.
- securityEvidence
- Evidence
Dowody na załadowanie zestawu.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
Parametr rawAssembly ma wartość null.
rawAssembly nie jest prawidłowym zestawem dla aktualnie załadowanego środowiska uruchomieniowego.
Zestaw lub moduł został załadowany dwukrotnie z dwoma różnymi dowodami.
securityEvidence nie nulljest . Domyślnie starsze zasady CAS nie są włączone w programie .NET Framework 4; jeśli nie jest włączona, securityEvidence musi mieć wartość null.
Uwagi
Ta metoda przeciąża zawsze tworzy nowy Assembly obiekt we własnym izolowanym kontekście obciążenia.
Zestaw jest ładowany przy użyciu dostarczonych dowodów. Ładowane są również nieprzetworzone bajty reprezentujące symbole zestawu.
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 Load metody bez Evidence parametru, zestaw jest ładowany z dowodami, że moduł ładujący dostarcza.
W przypadku użycia Load metody z parametrem Evidence scalane są elementy dowodów. Dowody dostarczone jako argument Load metody zastępuje dowody dostarczone przez moduł ładujący.
W przypadku użycia Load przeciążenia metody z parametrem
Byte[]w celu załadowania obrazu COFF dowody są dziedziczone z zestawu wywołującego.Jeśli używasz Load metody z parametrem
Byte[]i Evidence do ładowania obrazu COFF, używane są tylko dostarczone dowody. Dowody na wywoływany zestaw i dowody obrazu COFF są ignorowane.
Jeśli wywołasz metodę 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. Dowód, który po raz pierwszy się powiedzie, to dowody, które są używane.
Dotyczy
Load(String, Evidence)
Uwaga
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
Nazwa wyświetlana zestawu.
- assemblySecurity
- Evidence
Dowody na załadowanie zestawu.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
Parametr assemblyString ma wartość null.
nie można odnaleźć assemblyString.
assemblyString nie jest prawidłowym zestawem dla 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ą.
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 Load metody bez Evidence parametru, zestaw jest ładowany z dowodami, że moduł ładujący dostarcza.
W przypadku użycia Load metody z parametrem Evidence scalane są elementy dowodów. Dowody dostarczone jako argument Load metody zastępuje dowody dostarczone przez moduł ładujący.
Jeśli używasz Load 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.Jeśli używasz Load 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.
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 programie .NET Framework w wersji 2.0 architektura procesora jest dodawana do tożsamości zestawu i może być określona jako część ciągów nazw zestawów. 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: AssemblyName.ProcessorArchitecture.
Zobacz też
Dotyczy
Load(AssemblyName, Evidence)
Uwaga
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, biorąc pod uwagę jego AssemblyNamewartość . 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
Dowody na załadowanie zestawu.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
Parametr assemblyRef ma wartość null.
nie można odnaleźć assemblyRef.
assemblyRef nie jest prawidłowym zestawem dla aktualnie załadowanego środowiska uruchomieniowego.
Zestaw lub moduł został załadowany dwukrotnie z dwoma różnymi dowodami.
— lub —
assemblyRef Określa lokalizację, która jest wyłączona na <podstawie obciążeniaFromRemoteSources>.
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ą.
Zobacz <loadFromRemoteSources> ładowanie zestawów z lokalizacji zdalnych.
Uwaga / Notatka
Nie należy używać obiektu 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), więc ł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.
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 Load metody bez Evidence parametru, zestaw jest ładowany z dowodami, że moduł ładujący dostarcza.
W przypadku użycia Load metody z parametrem Evidence scalane są elementy dowodów. Dowody dostarczone jako argument Load metody zastępuje dowody dostarczone przez moduł ładujący.
Jeśli używasz Load 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.Jeśli używasz Load 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.
Uwaga / Notatka
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., jak zwracana 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 CodeBasemetody , nazwa wyświetlana jest zgodna z zestawem. Jeśli dopasowanie zakończy się niepowodzeniem, zostanie zgłoszony element FileLoadException .
Jeśli wywołasz metodę 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. Dowód, który po raz pierwszy się powiedzie, to dowody, które są używane.
Zobacz też
Dotyczy
Load(Byte[])
- Ź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 ze wspólnym obrazem opartym na pliku obiektów (COFF) zawierającym emitowany zestaw.
public:
static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
public static System.Reflection.Assembly Load(byte[] rawAssembly);
public static System.Reflection.Assembly Load(byte[] rawAssembly);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member Load : byte[] -> System.Reflection.Assembly
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 opartym na coFF zawierającym emitowany zestaw.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
Parametr rawAssembly ma wartość null.
rawAssembly nie jest prawidłowym zestawem dla aktualnie załadowanego środowiska uruchomieniowego.
Uwagi
Ta metoda przeciąża zawsze tworzy nowy Assembly obiekt we własnym izolowanym kontekście obciążenia.
Tylko program .NET Framework: Poziom zaufania zestawu ł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óre przyjmują 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
- Ź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
Parametr assemblyString ma wartość null.
assemblyString jest ciągiem o zerowej długości.
nie można odnaleźć assemblyString.
Nie można załadować pliku, który został znaleziony.
assemblyString nie jest prawidłowym zestawem dla aktualnie załadowanego środowiska uruchomieniowego.
Przykłady
Poniższy przykład ładuje zestaw pod nazwą w pełni kwalifikowaną i wyświetla listę wszystkich typów zawartych w określonym zestawie. Aby uzyskać informacje na temat uzyskiwania w pełni kwalifikowanej nazwy zestawu, zobacz Nazwy zestawów.
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
W programie .NET Core/.NET 5+zestaw docelowy zostanie załadowany do bieżącego AssemblyLoadContext lub do AssemblyLoadContext.CurrentContextualReflectionContext kontekstu, jeśli zostanie ustawiony. Aby uzyskać więcej informacji na temat ładowania zestawu, zobacz Managed assembly loading algorithm (Algorytm ładowania zestawu zarządzanego).
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 jej prostej nazwy (takiej jak "System" dla zestawu System.dll) wraz z 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 programu .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 programie .NET Framework w wersji 2.0 architektura procesora jest dodawana do tożsamości zestawu i może być określona jako część ciągów nazw zestawów. 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: AssemblyName.ProcessorArchitecture.
Zobacz też
Dotyczy
Load(AssemblyName)
- Źródło:
- Assembly.CoreCLR.cs
- Źródło:
- Assembly.CoreCLR.cs
- Źródło:
- Assembly.CoreCLR.cs
- Źródło:
- Assembly.CoreCLR.cs
- Źródło:
- Assembly.CoreCLR.cs
Ładuje zestaw, biorąc pod uwagę jego AssemblyNamewartość .
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
Parametr assemblyRef ma wartość null.
nie można odnaleźć assemblyRef.
Nie można załadować pliku, który został znaleziony.
— lub —
Tylko program .NET Framework: assemblyRef określa lokalizację, która jest wyłączona na <podstawie obciążeniaFromRemoteSources>.
Uwaga: na platformie .NET dla aplikacji ze Sklepu Windows lub w bibliotece klas przenośnych przechwyć wyjątek klasy bazowej , IOExceptionzamiast tego.
assemblyRef nie jest prawidłowym zestawem dla 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
W programie .NET Core/.NET 5+zestaw docelowy zostanie załadowany do bieżącego AssemblyLoadContext lub do AssemblyLoadContext.CurrentContextualReflectionContext kontekstu, jeśli zostanie ustawiony. Aby uzyskać więcej informacji na temat ładowania zestawu, zobacz Managed assembly loading algorithm (Algorytm ładowania zestawu zarządzanego).
Uwaga / Notatka
Tylko program .NET Framework: Aby uzyskać informacje o ładowaniu zestawów z lokalizacji zdalnych, zobacz <loadFromRemoteSources>.
Uwaga / Notatka
Tylko program .NET Framework: Nie należy używać obiektu 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), więc ł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 / Notatka
Tylko program .NET Framework: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., jak zwracana 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 CodeBasemetody , nazwa wyświetlana jest zgodna z zestawem. Jeśli dopasowanie zakończy się niepowodzeniem, zostanie zgłoszony element FileLoadException .
Zobacz też
Dotyczy
Load(Byte[], Byte[])
- Ź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 ze wspólnym obrazem opartym na pliku obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie w tym symbole zestawu.
public:
static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
public static System.Reflection.Assembly Load(byte[] rawAssembly, byte[]? rawSymbolStore);
public static System.Reflection.Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore);
public static System.Reflection.Assembly Load(byte[] rawAssembly, byte[]? rawSymbolStore);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member Load : byte[] * byte[] -> System.Reflection.Assembly
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 opartym na coFF zawierającym emitowany zestaw.
- rawSymbolStore
- Byte[]
Tablica bajtów zawierająca nieprzetworzone bajty reprezentujące symbole zestawu.
Zwraca
Załadowany zestaw.
- Atrybuty
Wyjątki
Parametr rawAssembly ma wartość null.
rawAssembly nie jest prawidłowym zestawem dla aktualnie załadowanego środowiska uruchomieniowego.
Uwagi
W programie .NET Core/5+zestaw docelowy jest ładowany do bieżącego AssemblyLoadContextelementu . Aby uzyskać więcej informacji na temat ładowania zestawu, zobacz Managed assembly loading algorithm (Algorytm ładowania zestawu zarządzanego).
Ta metoda przeciąża zawsze tworzy nowy Assembly obiekt we własnym izolowanym kontekście obciążenia.
Tylko program .NET Framework: Poziom zaufania zestawu ł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óre przyjmują tablice Load bajtów, zobacz Load(Byte[], Byte[], Evidence) przeciążenie metody.