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 obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie włączając symbole i określając źródło kontekstu zabezpieczeń. |
Load(Byte[], Byte[], Evidence) |
Przestarzałe.
Ładuje zestaw ze wspólnym obrazem opartym na formacie pliku obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie w tym symbole i dowody dla zestawu. |
Load(String, Evidence) |
Przestarzałe.
Ładuje zestaw o podanej nazwie wyświetlanej i przy użyciu dostarczonych dowodów. |
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 za pomocą obrazu opartego na formacie wspólnego pliku obiektów (COFF) zawierającego 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 formacie pliku obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie włączając symbole zestawu. |
Load(Byte[], Byte[], SecurityContextSource)
Ładuje zestaw z obrazem opartym na formacie wspólnego pliku obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie włączając 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 dla 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
określono, nieprzetworzone bajty reprezentujące symbole zestawu również są ł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 formacie 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 dla 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 programie .NET Framework 4; jeśli nie jest włączona, securityEvidence
musi mieć wartość null
.
Uwagi
To przeciążenie metody zawsze tworzy nowy Assembly obiekt we własnym izolowanym kontekście ładowania.
Zestaw jest ładowany przy użyciu dostarczonych dowodów. Ładowane są 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 dowodem, że moduł ładujący dostarcza.
Gdy używasz Load metody z parametrem Evidence , elementy dowodów są scalane. Dowody dostarczone jako argument metody Load 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.W przypadku użycia Load metody z parametrem
Byte[]
i Evidence załadowania obrazu COFF używany jest tylko dostarczony dowód. Dowody wywołującego 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 o podanej nazwie wyświetlanej i przy użyciu dostarczonych dowodów.
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 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 parametr 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 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 dowodem, że moduł ładujący dostarcza.
Gdy używasz Load metody z parametrem Evidence , elementy dowodów są scalane. Dowody dostarczone jako argument metody Load zastępuje dowody dostarczone przez moduł ładujący.
W przypadku użycia 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.W przypadku użycia Load metody z parametrem
Byte[]
i Evidence załadowania obrazu COFF używany jest tylko dostarczony dowód. Dowody na wywołanie zestawu 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. 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, 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
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 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 loadFromRemoteSources>.
Uwagi
FileLoadException parametr 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 innych zestawów, które są zgodne z prostą nazwą.
Zobacz <loadFromRemoteSources>
ładowanie zestawów z lokalizacji zdalnych.
Uwaga
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), dlatego ładowanie nie odbywa się zgodnie z regułami ładowania po tożsamości, jak można oczekiwać od Load metody . Zamiast tego zestaw jest ładowany przy użyciu reguł ładowania z. Aby uzyskać informacje o wadach korzystania z kontekstu ładowania, 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 dowodem, że moduł ładujący dostarcza.
Gdy używasz Load metody z parametrem Evidence , elementy dowodów są scalane. Dowody dostarczone jako argument metody Load zastępuje dowody dostarczone przez moduł ładujący.
W przypadku użycia 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.W przypadku użycia Load metody z parametrem
Byte[]
i Evidence załadowania obrazu COFF używany jest tylko dostarczony dowód. Dowody na wywołanie zestawu i dowody obrazu COFF są ignorowane.
Uwaga
Jeśli ustawiono AssemblyName.Name zarówno właściwość, jak i AssemblyName.CodeBase właściwość, pierwsza próba załadowania zestawu używa nazwy wyświetlanej (w tym wersji, kultury itd., zwróconej Assembly.FullName przez właściwość ). Jeśli plik nie zostanie znaleziony, CodeBase zostanie użyty do wyszukania zestawu. Jeśli zestaw zostanie znaleziony przy użyciu elementu CodeBase, nazwa wyświetlana jest dopasowywana do zestawu. Jeśli dopasowanie zakończy się niepowodzeniem FileLoadException , zostanie zgłoszony element .
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 za pomocą obrazu opartego na formacie wspólnego pliku obiektów (COFF) zawierającego 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 dla aktualnie załadowanego środowiska uruchomieniowego.
Uwagi
To przeciążenie metody zawsze tworzy nowy Assembly obiekt we własnym izolowanym kontekście ładowania.
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 Load metody, które przyjmują tablice 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 dla aktualnie załadowanego środowiska uruchomieniowego.
Przykłady
Poniższy przykład ładuje zestaw, podając w pełni kwalifikowaną nazwę 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 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 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 parametr 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 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, 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
assemblyRef
to null
.
assemblyRef
nie można odnaleźć.
Nie można załadować pliku, który został znaleziony.
-lub-
Tylko program .NET Framework: assemblyRef
określa lokalizację wyłączoną na <podstawie parametru loadFromRemoteSources>.
Uwaga: na platformie .NET dla aplikacji ze Sklepu Windows lub biblioteki 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
FileLoadException parametr jest zgłaszany, jeśli assemblyRef
określa pełną nazwę zestawu i pierwszy zestaw, który pasuje do prostej nazwy, ma inną wersję, kulturę lub token klucza publicznego. Moduł ładujący nie kontynuuje sondowania innych zestawów, które są zgodne z prostą nazwą.
Tylko program .NET Framework: Zobacz <loadFromRemoteSources>
ładowanie zestawów z lokalizacji zdalnych.
Uwaga
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), dlatego ładowanie nie odbywa się zgodnie z regułami ładowania po tożsamości, jak można oczekiwać od Load metody . Zamiast tego zestaw jest ładowany przy użyciu reguł ładowania z. Aby uzyskać informacje o wadach korzystania z kontekstu ładowania, zobacz Assembly.LoadFrom przeciążenie metody lub najlepsze rozwiązania dotyczące ładowania zestawów.
Uwaga
Tylko program .NET Framework: Jeśli ustawiono AssemblyName.Name zarówno właściwość, jak i AssemblyName.CodeBase właściwość, pierwsza próba załadowania zestawu używa nazwy wyświetlanej (w tym wersji, kultury itd., zwróconej Assembly.FullName przez właściwość ). Jeśli plik nie zostanie znaleziony, CodeBase zostanie użyty do wyszukania zestawu. Jeśli zestaw zostanie znaleziony przy użyciu elementu CodeBase, nazwa wyświetlana jest dopasowywana do zestawu. Jeśli dopasowanie zakończy się niepowodzeniem FileLoadException , zostanie zgłoszony element .
Zobacz też
Dotyczy
Load(Byte[], Byte[])
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
- Źródło:
- Assembly.cs
Ładuje zestaw ze wspólnym obrazem opartym na formacie pliku obiektów (COFF) zawierającym emitowany zestaw, opcjonalnie włączając 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 dla aktualnie załadowanego środowiska uruchomieniowego.
Uwagi
To przeciążenie metody zawsze tworzy nowy Assembly obiekt we własnym izolowanym kontekście ładowania.
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 Load metody, które przyjmują tablice bajtów, zobacz Load(Byte[], Byte[], Evidence) przeciążenie metody.