Assembly.Load Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Lädt eine Assembly.
Überlädt
Load(Byte[], Byte[], SecurityContextSource) |
Lädt die Assembly mit einem COFF-Image (Common Object File Format), das eine ausgegebene Assembly und optional Symbole enthält und die Quelle für den Sicherheitskontext angibt. Die Assembly wird in die Anwendungsdomäne des Aufrufers geladen. |
Load(Byte[], Byte[], Evidence) |
Veraltet.
Veraltet.
Lädt die Assembly mit einem COFF-Image (Common Object File Format), das eine ausgegebene Assembly und optional Symbole sowie einen Beweis für die Assembly enthält. Die Assembly wird in die Anwendungsdomäne des Aufrufers geladen. |
Load(String, Evidence) |
Veraltet.
Veraltet.
Lädt eine Assembly bei Angabe des Anzeigenamens, wobei die Assembly unter Verwendung der bereitgestellten Beweise in die Domäne des Aufrufers geladen wird. |
Load(AssemblyName, Evidence) |
Veraltet.
Veraltet.
Lädt eine Assembly bei Angabe von AssemblyName. Die Assembly wird mithilfe des bereitgestellten Beweises in die Domäne des Aufrufers geladen. |
Load(Byte[]) |
Lädt die Assembly mit einem COFF (Common Object File Format)-Image, das eine ausgegebene Assembly enthält. Die Assembly wird in die Anwendungsdomäne des Aufrufers geladen. |
Load(String) |
Lädt einen Typ mit dem angegebenen Namen. |
Load(AssemblyName) |
Lädt eine Assembly bei Angabe von AssemblyName. |
Load(Byte[], Byte[]) |
Lädt die Assembly mit einem COFF-Image (Common Object File Format), das eine ausgegebene Assembly und optional Symbole für die Assembly enthält. Die Assembly wird in die Anwendungsdomäne des Aufrufers geladen. |
Load(Byte[], Byte[], SecurityContextSource)
Lädt die Assembly mit einem COFF-Image (Common Object File Format), das eine ausgegebene Assembly und optional Symbole enthält und die Quelle für den Sicherheitskontext angibt. Die Assembly wird in die Anwendungsdomäne des Aufrufers geladen.
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
Parameter
- rawAssembly
- Byte[]
Ein Bytearray, das ein COFF-Image mit einer ausgegebenen Assembly ist.
- rawSymbolStore
- Byte[]
Ein Bytearray, das die Rohdatenbytes enthält, die die Symbole für die Assembly darstellen.
- securityContextSource
- SecurityContextSource
Die Quelle des Sicherheitskontexts.
Gibt zurück
Die geladene Assembly.
Ausnahmen
rawAssembly
ist null
.
rawAssembly
ist keine gültige Assembly.
- oder -
rawAssembly
wurde mit einer höheren Version der Common Language Runtime als die derzeit geladene Version kompiliert.
Der Wert von securityContextSource
ist keiner der Enumerationswerte.
Hinweise
Die Assembly wird mithilfe der angegebenen Quelle für den Sicherheitskontext in die Anwendungsdomäne des Aufrufers geladen. Wenn rawSymbolStore
angegeben wurde, werden auch die unformatierten Bytes geladen, die die Symbole für die Assembly darstellen.
Gilt für:
Load(Byte[], Byte[], Evidence)
Achtung
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.
Achtung
Diese API ist nun veraltet.
Lädt die Assembly mit einem COFF-Image (Common Object File Format), das eine ausgegebene Assembly und optional Symbole sowie einen Beweis für die Assembly enthält. Die Assembly wird in die Anwendungsdomäne des Aufrufers geladen.
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);
[System.Obsolete]
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
[<System.Obsolete>]
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
Parameter
- rawAssembly
- Byte[]
Ein Bytearray, das ein COFF-Image mit einer ausgegebenen Assembly ist.
- rawSymbolStore
- Byte[]
Ein Bytearray, das die Rohdatenbytes enthält, die die Symbole für die Assembly darstellen.
- securityEvidence
- Evidence
Beweis für das Laden der Assembly.
Gibt zurück
Die geladene Assembly.
- Attribute
Ausnahmen
rawAssembly
ist null
.
rawAssembly
ist keine gültige Assembly.
- oder -
Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und rawAssembly
wurde mit einer höheren Version kompiliert.
Eine Assembly oder ein Modul wurde zweimal mit zwei unterschiedlichen Beweisen geladen.
securityEvidence
ist nicht null
. Standardmäßig ist die ältere CAS-Richtlinie im .NET Framework 4 nicht aktiviert. Wenn sie nicht aktiviert ist, securityEvidence
muss sie seinnull
.
Hinweise
Die Assembly wird mithilfe des bereitgestellten Beweises in die Domäne des Aufrufers geladen. Die unformatierten Bytes, die die Symbole für die Assembly darstellen, werden ebenfalls geladen.
Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen. Die Regeln für das Zusammenführen von Assembly- und Sicherheitsnachweisen sind wie folgt:
Wenn Sie eine Load Methode ohne Evidence Parameter verwenden, wird die Assembly mit dem Beweis geladen, den der Ladeprogramm liefert.
Wenn Sie die Load-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt. Beweisstücke, die als Argument für die Load Methode angegeben werden, verdingen von dem Ladegerät gelieferte Beweisstücke.
Wenn Sie eine Load Methodenüberladung mit einem
Byte[]
Parameter verwenden, um ein COFF-Image zu laden, wird der Nachweis von der aufrufenden Assembly geerbt. Dies gilt für die .NET Framework Version 1.1 Service Pack 1 (SP1) und nachfolgende Versionen.Hinweis
In der .NET Framework Version 1.0 und in Version 1.1 ohne SP1 werden beweise kombiniert, wenn Sie eine Load Methodenüberladung mit einem
Byte[]
Parameter zum Laden eines COFF-Images verwenden.Zone
undUrl
Site
werden von der aufrufenden Assembly geerbt, undHash
undStrongName
werden von der COFF-Assembly übernommen.Wenn Sie eine Load Methode mit einem
Byte[]
Parameter verwenden und Evidence ein COFF-Image laden, wird nur der angegebene Beweis verwendet. Beweise für die aufrufende Assembly und Beweise für das COFF-Image werden ignoriert.
Das Reflektieren von ausführbaren C++-Dateien kann einen BadImageFormatExceptionauslösen. Meistens hat dabei der C++-Compiler die Umsetzungsadressen oder den .reloc
Abschnitt der ausführbaren Datei entfernt. Geben /fixed:no
Sie beim Verknüpfen an, um die .reloc
Adresse für Ihre ausführbare C++-Datei beizubehalten.
Wenn Sie die Load Methode mehr als einmal für dieselbe Assembly aufrufen, jedoch mit einem anderen angegebenen Beweis, löst die Common Language Runtime keine aus FileLoadException , da die Gleichheit und Integrität der verschiedenen Beweisspezifikationen nicht bestimmt werden kann. Der Beweis, der zuerst erfolgreich ist, sind die beweise, die verwendet werden.
Beachten Sie, dass diese Methodenüberladung immer ein neues Assembly Objekt mit eigener Zuordnung erstellt.
Gilt für:
Load(String, Evidence)
Achtung
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.
Achtung
Diese API ist nun veraltet.
Lädt eine Assembly bei Angabe des Anzeigenamens, wobei die Assembly unter Verwendung der bereitgestellten Beweise in die Domäne des Aufrufers geladen wird.
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);
[System.Obsolete]
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
[<System.Obsolete>]
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String, assemblySecurity As Evidence) As Assembly
Parameter
- assemblyString
- String
Der Anzeigename der Assembly.
- assemblySecurity
- Evidence
Beweis für das Laden der Assembly.
Gibt zurück
Die geladene Assembly.
- Attribute
Ausnahmen
assemblyString
ist null
.
assemblyString
wurde nicht gefunden.
assemblyString
ist keine gültige Assembly.
- oder -
Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und assemblyString
wurde mit einer höheren Version kompiliert.
Eine gefundene Datei konnte nicht geladen werden.
- oder -
Eine Assembly oder ein Modul wurde zweimal mit zwei unterschiedlichen Beweisen geladen.
Hinweise
FileLoadException wird ausgelöst, wenn assemblyString
der vollständige Assemblyname angegeben wird und die erste Assembly, die mit dem einfachen Namen übereinstimmt, über ein anderes Versions-, Kultur- oder öffentliches Schlüsseltoken verfügt. Das Ladeprogramm sucht nicht weiter nach anderen Assemblys, die dem einfachen Namen entsprechen.
Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen. Die Regeln für das Zusammenführen von Assembly- und Sicherheitsnachweisen sind wie folgt:
Wenn Sie eine Load Methode ohne Evidence Parameter verwenden, wird die Assembly mit dem Beweis geladen, den der Ladeprogramm liefert.
Wenn Sie die Load-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt. Beweisstücke, die als Argument für die Load Methode angegeben werden, verdingen von dem Ladegerät gelieferte Beweisstücke.
Wenn Sie eine Load Methodenüberladung mit einem
Byte[]
Parameter verwenden, um ein COFF-Image (Common Object File Format) zu laden, wird der Nachweis von der aufrufenden Assembly geerbt. Dies gilt für die .NET Framework Version 1.1 Service Pack 1 (SP1) und nachfolgende Versionen.Hinweis
In der .NET Framework Version 1.0 und in Version 1.1 ohne SP1 werden beweise kombiniert, wenn Sie eine Load Methodenüberladung mit einem
Byte[]
Parameter zum Laden eines COFF-Images verwenden.Zone
undUrl
Site
werden von der aufrufenden Assembly geerbt, undHash
undStrongName
werden von der COFF-Assembly übernommen.Wenn Sie eine Load Methode mit einem
Byte[]
Parameter verwenden und Evidence ein COFF-Image laden, wird nur der angegebene Beweis verwendet. Der Nachweis der aufrufenden Assembly und der Nachweis des COFF-Images werden ignoriert.
Das Reflektieren von ausführbaren C++-Dateien kann einen BadImageFormatExceptionauslösen. Meistens hat dabei der C++-Compiler die Umsetzungsadressen oder den .reloc
Abschnitt der ausführbaren Datei entfernt. Geben /fixed:no
Sie beim Verknüpfen an, um die .reloc
Adresse für Ihre ausführbare C++-Datei beizubehalten.
Wenn Sie diese Methode mehrmals für dieselbe Assembly aufrufen, jedoch mit einem anderen Angegebenen Beweis, löst die Common Language Runtime keine aus FileLoadException , da die Gleichheit und Integrität der verschiedenen Beweisspezifikationen nicht bestimmt werden kann. Der Beweis, der zuerst erfolgreich ist, sind die beweise, die verwendet werden.
In der .NET Framework Version 2.0 wird die Prozessorarchitektur der Assemblyidentität hinzugefügt und kann als Teil von Assemblynamenzeichenfolgen angegeben werden. Beispiel: "ProcessorArchitecture=msil". Die empfohlene Methode zum Angeben eines Assemblynamens besteht jedoch darin, ein AssemblyName Objekt zu erstellen und es an eine entsprechende Überladung der Load -Methode zu übergeben. Siehe AssemblyName.ProcessorArchitecture.
Weitere Informationen
Gilt für:
Load(AssemblyName, Evidence)
Achtung
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.
Achtung
Diese API ist nun veraltet.
Lädt eine Assembly bei Angabe von AssemblyName. Die Assembly wird mithilfe des bereitgestellten Beweises in die Domäne des Aufrufers geladen.
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);
[System.Obsolete]
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
[<System.Obsolete>]
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
Parameter
- assemblyRef
- AssemblyName
Das Objekt, das die zu ladende Assembly beschreibt.
- assemblySecurity
- Evidence
Beweis für das Laden der Assembly.
Gibt zurück
Die geladene Assembly.
- Attribute
Ausnahmen
assemblyRef
ist null
.
assemblyRef
wurde nicht gefunden.
assemblyRef
ist keine gültige Assembly.
- oder -
Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und assemblyRef
wurde mit einer höheren Version kompiliert.
Eine Assembly oder ein Modul wurde zweimal mit zwei unterschiedlichen Beweisen geladen.
- oder -
assemblyRef
gibt eine Remoteassembly an, die Funktion zum Ausführen von Code in Remoteassemblys ist jedoch deaktiviert. Weitere Informationen finden Sie unter <loadFromRemoteSources>.
Hinweise
FileLoadException wird ausgelöst, wenn assemblyRef
der vollständige Assemblyname angegeben wird und die erste Assembly, die mit dem einfachen Namen übereinstimmt, über ein anderes Versions-, Kultur- oder öffentliches Schlüsseltoken verfügt. Das Ladeprogramm sucht nicht weiter nach anderen Assemblys, die dem einfachen Namen entsprechen. Ab .NET Framework 4 wird, da die Ausführung von Code in Remoteassemblys standardmäßig deaktiviert ist, auch ausgelöstFileLoadException, wenn assemblyRef
eine Remoteassembly angegeben wird. Zum Aktivieren der Ausführung von Code, der von Remotestandorten geladen wird, können Sie das <loadFromRemoteSources>
Konfigurationselement verwenden.
Hinweis
Verwenden Sie nicht mit AssemblyName dem CodeBase -Eigenschaftssatz. Die CodeBase -Eigenschaft stellt keine Elemente der Assemblyidentität (z. B. Name oder Version) bereit, sodass das Laden nicht gemäß den Regeln für das Laden nach Identität erfolgt, wie Sie es von der Load -Methode erwarten würden. Stattdessen wird die Assembly mithilfe von Laderegeln geladen. Informationen zu den Nachteilen der Verwendung des Kontexts "Laden aus" finden Sie in der Assembly.LoadFrom Methodenüberladung oder unter Bewährte Methoden für das Laden von Assemblys.
Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen. Die Regeln für das Zusammenführen von Assembly- und Sicherheitsnachweisen sind wie folgt:
Wenn Sie eine Load Methode ohne Evidence Parameter verwenden, wird die Assembly mit dem Beweis geladen, den der Ladeprogramm liefert.
Wenn Sie die Load-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt. Beweisstücke, die als Argument für die Load Methode angegeben werden, verdingen von dem Ladegerät gelieferte Beweisstücke.
Wenn Sie eine Load Methodenüberladung mit einem
Byte[]
Parameter verwenden, um ein COFF-Image (Common Object File Format) zu laden, wird der Nachweis von der aufrufenden Assembly geerbt. Dies gilt für die .NET Framework Version 1.1 Service Pack 1 (SP1) und nachfolgende Versionen.Hinweis
In der .NET Framework Version 1.0 und in Version 1.1 ohne SP1 werden beweise kombiniert, wenn Sie eine Load Methodenüberladung mit einem
Byte[]
Parameter zum Laden eines COFF-Images verwenden.Zone
undUrl
Site
werden von der aufrufenden Assembly geerbt, undHash
undStrongName
werden von der COFF-Assembly übernommen.Wenn Sie eine Load Methode mit einem
Byte[]
Parameter verwenden und Evidence ein COFF-Image laden, wird nur der angegebene Beweis verwendet. Der Nachweis der aufrufenden Assembly und der Nachweis des COFF-Images werden ignoriert.
Das Reflektieren von ausführbaren C++-Dateien kann einen BadImageFormatExceptionauslösen. Meistens hat dabei der C++-Compiler die Umsetzungsadressen oder den .reloc
Abschnitt der ausführbaren Datei entfernt. Geben /fixed:no
Sie beim Verknüpfen an, um die .reloc
Adresse für Ihre ausführbare C++-Datei beizubehalten.
Hinweis
Wenn sowohl die AssemblyName.Name -Eigenschaft als auch die AssemblyName.CodeBase -Eigenschaft festgelegt sind, verwendet der erste Versuch, die Assembly zu laden, den Anzeigenamen (einschließlich Version, Kultur usw., wie von der Assembly.FullName -Eigenschaft zurückgegeben). Wenn die Datei nicht gefunden wird, wird verwendet, CodeBase um nach der Assembly zu suchen. Wenn die Assembly mit CodeBasegefunden wird, wird der Anzeigename mit der Assembly abgeglichen. Wenn die Übereinstimmung fehlschlägt, wird ein FileLoadException ausgelöst.
Wenn Sie die Load Methode mehr als einmal für dieselbe Assembly aufrufen, jedoch mit einem anderen angegebenen Beweis, löst die Common Language Runtime keine aus FileLoadException , da die Gleichheit und Integrität der verschiedenen Beweisspezifikationen nicht bestimmt werden kann. Der Beweis, der zuerst erfolgreich ist, sind die beweise, die verwendet werden.
Weitere Informationen
Gilt für:
Load(Byte[])
Lädt die Assembly mit einem COFF (Common Object File Format)-Image, das eine ausgegebene Assembly enthält. Die Assembly wird in die Anwendungsdomäne des Aufrufers geladen.
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
Parameter
- rawAssembly
- Byte[]
Ein Bytearray, das ein COFF-Image mit einer ausgegebenen Assembly ist.
Gibt zurück
Die geladene Assembly.
Ausnahmen
rawAssembly
ist null
.
rawAssembly
ist keine gültige Assembly.
- oder -
Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und rawAssembly
wurde mit einer höheren Version kompiliert.
Hinweise
Die Vertrauensebene einer Assembly, die mit dieser Methode geladen wird, entspricht der Vertrauensebene der aufrufenden Assembly. Verwenden Load(Byte[], Byte[], SecurityContextSource) Sie die Methodenüberladung, um eine Assembly aus einem Bytearray mit der Vertrauensebene der Anwendungsdomäne zu laden. Weitere Informationen zur Verwendung von Beweisen mit Überladungen der -Methode, die Load Bytearrays annehmen, finden Sie in der Load(Byte[], Byte[], Evidence) Methodenüberladung.
Das Reflektieren von ausführbaren C++-Dateien kann einen BadImageFormatExceptionauslösen. Meistens hat dabei der C++-Compiler die Umsetzungsadressen oder den .reloc
Abschnitt der ausführbaren Datei entfernt. Geben /fixed:no
Sie beim Verknüpfen an, um die .reloc
Adresse für Ihre ausführbare C++-Datei beizubehalten.
Beachten Sie, dass diese Methodenüberladung immer ein neues Assembly Objekt mit eigener Zuordnung erstellt.
Gilt für:
Load(String)
Lädt einen Typ mit dem angegebenen Namen.
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
Parameter
- assemblyString
- String
Die Langform oder Kurzform des Assemblynamens.
Gibt zurück
Die geladene Assembly.
Ausnahmen
assemblyString
ist null
.
assemblyString
ist eine Zeichenfolge der Länge 0 (null).
assemblyString
wurde nicht gefunden.
Eine gefundene Datei konnte nicht geladen werden.
assemblyString
ist keine gültige Assembly.
- oder -
Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und assemblyString
wurde mit einer höheren Version kompiliert.
Beispiele
Im folgenden Beispiel wird eine Assembly mit ihrem vollqualifizierten Namen geladen und alle Typen aufgelistet, die in der angegebenen Assembly enthalten sind. Informationen zum Abrufen des vollqualifizierten Assemblynamens finden Sie unter Assemblynamen.
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
Hinweise
Um die richtige Assembly zu laden, wird empfohlen, die Load
-Methode aufzurufen, indem Sie die lange Form des Assemblynamens übergeben. Die lange Form eines Assemblynamens besteht aus seinem einfachen Namen (z. B. "System" für die System.dll Assembly) zusammen mit seiner Version, Kultur, öffentlichem Schlüsseltoken und optional seiner Prozessorarchitektur. Sie entspricht der -Eigenschaft der FullName Assembly. Das folgende Beispiel veranschaulicht die Verwendung eines langen Namens zum Laden der System.dll Assembly für die .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 wird ausgelöst, wenn assemblyString
der vollständige Assemblyname angegeben wird und die erste Assembly, die mit dem einfachen Namen übereinstimmt, über ein anderes Versions-, Kultur- oder öffentliches Schlüsseltoken verfügt. Das Ladeprogramm sucht nicht weiter nach anderen Assemblys, die dem einfachen Namen entsprechen.
Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen. Die Regeln für das Zusammenführen von Assembly- und Sicherheitsnachweisen sind wie folgt:
Wenn Sie eine Load Methode ohne Evidence Parameter verwenden, wird die Assembly mit dem Beweis geladen, den der Ladeprogramm liefert.
Wenn Sie die Load-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt. Beweisstücke, die als Argument für die Load Methode angegeben werden, verdingen von dem Ladegerät gelieferte Beweisstücke.
Wenn Sie eine Load Methodenüberladung mit einem
Byte[]
Parameter verwenden, um ein COFF-Image (Common Object File Format) zu laden, wird der Nachweis von der aufrufenden Assembly geerbt. Dies gilt für die .NET Framework Version 1.1 Service Pack 1 (SP1) und nachfolgende Versionen.Hinweis
In der .NET Framework Version 1.0 und in Version 1.1 ohne SP1 werden beweise kombiniert, wenn Sie eine Load Methodenüberladung mit einem
Byte[]
Parameter zum Laden eines COFF-Images verwenden.Zone
undUrl
Site
werden von der aufrufenden Assembly geerbt, undHash
undStrongName
werden von der COFF-Assembly übernommen.Wenn Sie eine Load Methode mit einem
Byte[]
Parameter verwenden und Evidence ein COFF-Image laden, wird nur der angegebene Beweis verwendet. Der Nachweis der aufrufenden Assembly und der Nachweis des COFF-Images werden ignoriert.
Das Reflektieren von ausführbaren C++-Dateien kann einen BadImageFormatExceptionauslösen. Meistens hat dabei der C++-Compiler die Umsetzungsadressen oder den .reloc
Abschnitt der ausführbaren Datei entfernt. Geben /fixed:no
Sie beim Verknüpfen an, um die .reloc
Adresse für Ihre ausführbare C++-Datei beizubehalten.
In der .NET Framework Version 2.0 wird die Prozessorarchitektur der Assemblyidentität hinzugefügt und kann als Teil von Assemblynamenzeichenfolgen angegeben werden. Beispiel: "ProcessorArchitecture=msil". Die empfohlene Methode zum Angeben eines Assemblynamens besteht jedoch darin, ein AssemblyName Objekt zu erstellen und es an eine entsprechende Überladung der Load -Methode zu übergeben. Siehe AssemblyName.ProcessorArchitecture.
Weitere Informationen
Gilt für:
Load(AssemblyName)
Lädt eine Assembly bei Angabe von 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
Parameter
- assemblyRef
- AssemblyName
Das Objekt, das die zu ladende Assembly beschreibt.
Gibt zurück
Die geladene Assembly.
Ausnahmen
assemblyRef
ist null
.
assemblyRef
wurde nicht gefunden.
Eine gefundene Datei konnte nicht geladen werden.
- oder -
assemblyRef
gibt eine Remoteassembly an, die Funktion zum Ausführen von Code in Remoteassemblys ist jedoch deaktiviert. Weitere Informationen finden Sie unter <loadFromRemoteSources>.
Hinweis: In .NET für Windows Store-Apps oder der portablen Klassenbibliothek sollten Sie stattdessen die Basisklassen-Ausnahme IOExceptionabfangen.
assemblyRef
ist keine gültige Assembly. - oder -
Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und assemblyRef
wurde mit einer höheren Version kompiliert.
Beispiele
Im folgenden Beispiel wird ein AssemblyName -Objekt instanziiert und zum Laden der sysglobal.dll
Assembly verwendet. Im Beispiel wird dann der vollständige Name der öffentlichen Typen der Assembly angezeigt.
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
Hinweise
FileLoadException wird ausgelöst, wenn assemblyRef
der vollständige Assemblyname angegeben wird und die erste Assembly, die mit dem einfachen Namen übereinstimmt, über ein anderes Versions-, Kultur- oder öffentliches Schlüsseltoken verfügt. Das Ladeprogramm sucht nicht weiter nach anderen Assemblys, die dem einfachen Namen entsprechen. Ab .NET Framework 4 wird, da die Ausführung von Code in Remoteassemblys standardmäßig deaktiviert ist, auch ausgelöstFileLoadException, wenn assemblyRef
eine Remoteassembly angegeben wird. Zum Aktivieren der Ausführung von Code, der von Remotestandorten geladen wird, können Sie das <loadFromRemoteSources>
Konfigurationselement verwenden.
Hinweis
Verwenden Sie nicht mit AssemblyName dem CodeBase -Eigenschaftssatz. Die CodeBase -Eigenschaft stellt keine Elemente der Assemblyidentität (z. B. Name oder Version) bereit, sodass das Laden nicht gemäß den Regeln für das Laden nach Identität erfolgt, wie Sie es von der Load -Methode erwarten würden. Stattdessen wird die Assembly mithilfe von Laderegeln geladen. Informationen zu den Nachteilen der Verwendung des Kontexts "Laden aus" finden Sie in der Assembly.LoadFrom Methodenüberladung oder unter Bewährte Methoden für das Laden von Assemblys.
Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen. Die Regeln für das Zusammenführen von Assembly- und Sicherheitsnachweisen sind wie folgt:
Wenn Sie eine Load Methode ohne Evidence Parameter verwenden, wird die Assembly mit dem Beweis geladen, den der Ladeprogramm liefert.
Wenn Sie die Load-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt. Beweisstücke, die als Argument für die Load Methode angegeben werden, verdingen von dem Ladegerät gelieferte Beweisstücke.
Wenn Sie eine Load Methodenüberladung mit einem
Byte[]
Parameter verwenden, um ein COFF-Image (Common Object File Format) zu laden, wird der Nachweis von der aufrufenden Assembly geerbt. Dies gilt für die .NET Framework Version 1.1 Service Pack 1 (SP1) und nachfolgende Versionen.Hinweis
In der .NET Framework Version 1.0 und in Version 1.1 ohne SP1 werden beweise kombiniert, wenn Sie eine Load Methodenüberladung mit einem
Byte[]
Parameter zum Laden eines COFF-Images verwenden.Zone
undUrl
Site
werden von der aufrufenden Assembly geerbt, undHash
undStrongName
werden von der COFF-Assembly übernommen.Wenn Sie eine Load Methode mit einem
Byte[]
Parameter verwenden und Evidence ein COFF-Image laden, wird nur der angegebene Beweis verwendet. Der Nachweis der aufrufenden Assembly und der Nachweis des COFF-Images werden ignoriert.
Das Reflektieren von ausführbaren C++-Dateien kann einen BadImageFormatExceptionauslösen. Meistens hat dabei der C++-Compiler die Umsetzungsadressen oder den .reloc
Abschnitt der ausführbaren Datei entfernt. Geben /fixed:no
Sie beim Verknüpfen an, um die .reloc
Adresse für Ihre ausführbare C++-Datei beizubehalten.
Hinweis
Wenn sowohl die AssemblyName.Name -Eigenschaft als auch die AssemblyName.CodeBase -Eigenschaft festgelegt sind, verwendet der erste Versuch, die Assembly zu laden, den Anzeigenamen (einschließlich Version, Kultur usw., wie von der Assembly.FullName -Eigenschaft zurückgegeben). Wenn die Datei nicht gefunden wird, wird verwendet, CodeBase um nach der Assembly zu suchen. Wenn die Assembly mit CodeBasegefunden wird, wird der Anzeigename mit der Assembly abgeglichen. Wenn die Übereinstimmung fehlschlägt, wird ein FileLoadException ausgelöst.
Weitere Informationen
Gilt für:
Load(Byte[], Byte[])
Lädt die Assembly mit einem COFF-Image (Common Object File Format), das eine ausgegebene Assembly und optional Symbole für die Assembly enthält. Die Assembly wird in die Anwendungsdomäne des Aufrufers geladen.
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
Parameter
- rawAssembly
- Byte[]
Ein Bytearray, das ein COFF-Image mit einer ausgegebenen Assembly ist.
- rawSymbolStore
- Byte[]
Ein Bytearray, das die Rohdatenbytes enthält, die die Symbole für die Assembly darstellen.
Gibt zurück
Die geladene Assembly.
Ausnahmen
rawAssembly
ist null
.
rawAssembly
ist keine gültige Assembly.
- oder -
Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und rawAssembly
wurde mit einer höheren Version kompiliert.
Hinweise
Die Vertrauensebene einer Assembly, die mit dieser Methode geladen wird, entspricht der Vertrauensebene der aufrufenden Assembly. Verwenden Load(Byte[], Byte[], SecurityContextSource) Sie die Methodenüberladung, um eine Assembly aus einem Bytearray mit der Vertrauensebene der Anwendungsdomäne zu laden. Weitere Informationen zur Verwendung von Beweisen mit Überladungen der -Methode, die Load Bytearrays annehmen, finden Sie in der Load(Byte[], Byte[], Evidence) Methodenüberladung.
Das Reflektieren von ausführbaren C++-Dateien kann einen BadImageFormatExceptionauslösen. Meistens hat dabei der C++-Compiler die Umsetzungsadressen oder den .reloc
Abschnitt der ausführbaren Datei entfernt. Geben /fixed:no
Sie beim Verknüpfen an, um die .reloc
Adresse für Ihre ausführbare C++-Datei beizubehalten.
Beachten Sie, dass diese Methodenüberladung immer ein neues Assembly Objekt mit eigener Zuordnung erstellt.