Assembly.LoadFrom Methode

Definition

Lädt eine Assembly.

Überlädt

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
Veraltet.
Veraltet.

Lädt eine Assembly bei Angabe des Dateinamens bzw. -pfads, des Hashwerts, der Sicherheitsbeweise und des Hashalgorithmus.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Lädt eine Assembly bei Angabe des Dateinamens bzw. -pfads, des Hashwerts und des Hashalgorithmus.

LoadFrom(String)

Lädt eine Assembly bei Angabe des Anzeigenamens oder Pfads.

LoadFrom(String, Evidence)
Veraltet.
Veraltet.

Lädt eine Assembly bei Angabe des Dateinamens oder Pfads und liefert den Sicherheitsbeweis.

Hinweise

Ab .NET Framework 4 ist die Möglichkeit zum Ausführen von Code in Assemblys, die von Remotespeicherorten geladen wurden, standardmäßig deaktiviert, und der Aufruf der -Methode löst LoadFrom eine FileLoadException aus. Um die Assembly zu laden und ihren Code auszuführen, müssen Sie eine der folgenden Anweisungen ausführen:

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)

Achtung

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Achtung

Diese API ist nun veraltet.

Lädt eine Assembly bei Angabe des Dateinamens bzw. -pfads, des Hashwerts, der Sicherheitsbeweise und des Hashalgorithmus.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member LoadFrom : string * System.Security.Policy.Evidence * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member LoadFrom : string * System.Security.Policy.Evidence * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
[<System.Obsolete>]
static member LoadFrom : string * System.Security.Policy.Evidence * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

Parameter

assemblyFile
String

Der Name oder Pfad der Datei, die das Manifest der Assembly enthält.

securityEvidence
Evidence

Beweis für das Laden der Assembly.

hashValue
Byte[]

Der Wert des errechneten Hashcodes.

hashAlgorithm
AssemblyHashAlgorithm

Der Hashalgorithmus für das Hashing von Dateien und das Generieren des starken Namens.

Gibt zurück

Assembly

Die geladene Assembly.

Attribute

Ausnahmen

assemblyFile ist null.

assemblyFile wurde nicht gefunden, oder das Modul, das Sie laden möchten, enthält keine Angabe der Dateinamenerweiterung.

Eine gefundene Datei konnte nicht geladen werden.

- oder -

Der securityEvidence ist nicht mehrdeutig und wird als ungültig bestimmt.

- oder -

Das Ausführen von Code in Remoteassemblys ist deaktiviert. Weitere Informationen finden Sie unter <loadFromRemoteSources>.

assemblyFile ist keine gültige Assembly; beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess. Weitere Informationen finden Sie in Ausnahmethema.

- oder -

Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und assemblyFile wurde mit einer höheren Version kompiliert.

Eine CodeBase, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermission angegeben.

Der assemblyFile-Parameter ist eine leere Zeichenfolge ("").

Der Assemblyname überschreitet die im System definierte maximale Länge.

Hinweise

Der assemblyFile Parameter muss auf einen URI ohne Escapezeichen verweisen. Diese Methode stellt Escapezeichen für alle ungültigen Zeichen im URI zur Verfügung.

Hinweis

Ftp (File Transfer Protocol) wird nicht unterstützt. Wenn der für angegebene URI assemblyFile eine FTP-Adresse ist, wird die Assembly nicht geladen. Es wird keine Ausnahme ausgelöst.

assemblyFile kann absolut oder relativ zum aktuellen Verzeichnis sein, und die Assembly wird in die Domäne des Aufrufers geladen.

Assemblys können in einen von drei Kontexten geladen oder ohne Kontext geladen werden:

  • Der Ladekontext enthält Assemblys, die durch die Untersuchung gefunden werden: im GAC, in einem Hostassemblyspeicher, wenn die Runtime gehostet wird, oder in der ApplicationBase und PrivateBinPath der Anwendungsdomäne. Die meisten Überladungen der Methode Load laden Assemblys in diesen Kontext.

  • Der Load From-Kontext enthält Assemblys, für die der Benutzer einen Pfad angegeben hat, der nicht in den verzeichnissen enthalten ist, die durch Die Suche durchsucht wurden. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.

    Ab .NET Framework 4 ist das Laden von Assemblys standardmäßig deaktiviert, wenn der URI von assemblyFile einen Remotespeicherort angibt, und die LoadFrom -Methode löst eine FileLoadException aus. Um die Ausführung von Code zu aktivieren, der von Remotespeicherorten geladen wurde, können Sie das <loadFromRemoteSources> Konfigurationselement verwenden.

  • Der Reflektionskontext enthält Assemblys, die mit den Methoden und geladen ReflectionOnlyLoad ReflectionOnlyLoadFrom wurden. Code in diesen Kontexten kann nicht ausgeführt werden.

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet sie sich in keinem Kontext. Dies gilt für Assemblys, die mithilfe von Überladungen der -Methode geladen werden, die Load ein Bytearray angeben, das eine Assembly enthält, sowie für vorübergehende dynamische Assemblys, die mit Reflektionsemission erstellt und nicht auf dem Datenträger gespeichert werden.

Der Load From-Kontext ermöglicht es, eine Assembly aus einem Pfad zu laden, der nicht in der Untersuchung enthalten ist, und dennoch ermöglicht es, Abhängigkeiten von diesem Pfad zu finden und zu laden, da die Pfadinformationen vom Kontext verwaltet werden.

Die LoadFrom -Methode hat die folgenden Nachteile. Verwenden Sie stattdessen Load.

  • Wenn eine Assembly mit der gleichen Identität bereits geladen wurde, gibt LoadFrom die geladene Assembly zurück, auch wenn ein anderer Pfad angegeben wurde.

  • Wenn eine Assembly mit geladen wird LoadFrom und eine Assembly im Ladekontext später versucht, dieselbe Assembly anhand des Anzeigenamens zu laden, schlägt der Ladeversuch fehl. Dies kann auftreten, wenn eine Assembly deserialisiert ist.

  • Wenn eine Assembly mit geladen wird LoadFrom und der Testpfad eine Assembly mit derselben Identität, aber einem anderen Speicherort enthält, kann ein InvalidCastException , oder ein anderes MissingMethodException unerwartetes Verhalten auftreten.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.

  • Wenn ein systemeigenes Image für vorhanden assemblyFile ist, wird es nicht verwendet. Die Assembly kann nicht als domänenneutral geladen werden.

  • In den .NET Framework Version 1.0 und 1.1 wird die Richtlinie nicht angewendet.

Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen. Die Regeln für das Zusammenführen von Assembly- und Sicherheitsbeweis sind wie folgt:

  • Wenn Sie eine LoadFrom Methode ohne Evidence Parameter verwenden, wird die Assembly mit dem Beweis geladen, den das Ladeprogramm liefert.

  • Wenn Sie die LoadFrom-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt. Beweisteile, die als Argument für die -Methode bereitgestellt werden, ersetzen die LoadFrom vom Ladeprogramm bereitgestellten Beweisteile.

  • Wenn Sie diese Methode mehr als einmal in derselben Assembly aufrufen, aber einen anderen Beweis angegeben haben, löst die Common Language Runtime keine aus, FileLoadException da die Gleichheit und Integrität der verschiedenen Beweisspezifikationen nicht bestimmt werden können. Der Beweis, der zuerst erfolgreich ist, ist der Beweis, der verwendet wird.

  • Wenn Sie eine LoadFrom Methode mit einem Parameter Byte[] verwenden, um ein COFF-Bild (Common Object File Format) zu laden, wird der Beweis kombiniert. Zone, Url und werden von der Site aufrufenden Assembly geerbt, Hash und und werden aus der StrongName COFF-Assembly übernommen.

  • Wenn Sie eine LoadFrom Methode mit einem Parameter verwenden und ein Byte[] Evidence COFF-Image laden, wird nur der angegebene Beweis verwendet. Der Beweis für die aufrufende Assembly und der Beweis des COFF-Images werden ignoriert.

Gilt für

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Lädt eine Assembly bei Angabe des Dateinamens bzw. -pfads, des Hashwerts und des Hashalgorithmus.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

Parameter

assemblyFile
String

Der Name oder Pfad der Datei, die das Manifest der Assembly enthält.

hashValue
Byte[]

Der Wert des errechneten Hashcodes.

hashAlgorithm
AssemblyHashAlgorithm

Der Hashalgorithmus für das Hashing von Dateien und das Generieren des starken Namens.

Gibt zurück

Assembly

Die geladene Assembly.

Ausnahmen

assemblyFile ist null.

assemblyFile wurde nicht gefunden, oder das Modul, das Sie laden möchten, enthält keine Angabe zur Dateinamenerweiterung.

Eine gefundene Datei konnte nicht geladen werden.

- oder -

Das Ausführen von Code in Remoteassemblys ist deaktiviert. Weitere Informationen finden Sie unter <loadFromRemoteSources>.

assemblyFile ist keine gültige Assembly; beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess. Weitere Informationen finden Sie in Ausnahmethema.

- oder -

assemblyFile wurde mit einer höheren Version der Common Language Runtime als die derzeit geladene Version kompiliert.

Eine CodeBase, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermission angegeben.

Der assemblyFile-Parameter ist eine leere Zeichenfolge ("").

Der Assemblyname überschreitet die im System definierte maximale Länge.

Hinweise

Der assemblyFile Parameter muss auf einen URI ohne Escapezeichen verweisen. Diese Methode stellt Escapezeichen für alle ungültigen Zeichen im URI zur Verfügung.

Hinweis

Ftp (File Transfer Protocol) wird nicht unterstützt. Wenn der für angegebene URI assemblyFile eine FTP-Adresse ist, wird die Assembly nicht geladen. Es wird keine Ausnahme ausgelöst.

assemblyFile kann absolut oder relativ zum aktuellen Verzeichnis sein, und die Assembly wird in die Domäne des Aufrufers geladen.

Assemblys können in einen von drei Kontexten geladen oder ohne Kontext geladen werden:

  • Der Ladekontext enthält Assemblys, die durch die Untersuchung gefunden werden: im globalen Assemblycache, in einem Hostassemblyspeicher, wenn die Laufzeit gehostet wird, oder in der ApplicationBase und PrivateBinPath der Anwendungsdomäne. Die meisten Überladungen der Methode Load laden Assemblys in diesen Kontext.

  • Der Load From-Kontext enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in der Suche enthalten ist. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.

    Ab .NET Framework 4 ist das Laden von Assemblys standardmäßig deaktiviert, wenn der URI von assemblyFile einen Remotespeicherort angibt, und die LoadFrom -Methode löst eine FileLoadException aus. Um die Ausführung von Code zu aktivieren, der von Remotespeicherorten geladen wurde, können Sie das <loadFromRemoteSources> Konfigurationselement verwenden.

  • Der Reflektionskontext enthält Assemblys, die mit den Methoden und geladen ReflectionOnlyLoad ReflectionOnlyLoadFrom wurden. Code in diesen Kontexten kann nicht ausgeführt werden.

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet sie sich in keinem Kontext. Dies gilt für Assemblys, die mithilfe von Überladungen der -Methode geladen werden, die Load ein Bytearray angeben, das eine Assembly enthält, sowie für vorübergehende dynamische Assemblys, die mit Reflektionsemission erstellt und nicht auf dem Datenträger gespeichert werden.

Der Load From-Kontext ermöglicht es, eine Assembly aus einem Pfad zu laden, der nicht in der Untersuchung enthalten ist, und dennoch ermöglicht es, Abhängigkeiten von diesem Pfad zu finden und zu laden, da die Pfadinformationen vom Kontext verwaltet werden.

Die LoadFrom -Methode hat die folgenden Nachteile. Verwenden Sie stattdessen Load.

  • Wenn eine Assembly mit der gleichen Identität bereits geladen wurde, gibt LoadFrom die geladene Assembly zurück, auch wenn ein anderer Pfad angegeben wurde.

  • Wenn eine Assembly mit geladen wird LoadFrom und eine Assembly im Ladekontext später versucht, dieselbe Assembly anhand des Anzeigenamens zu laden, schlägt der Ladeversuch fehl. Dies kann auftreten, wenn eine Assembly deserialisiert ist.

  • Wenn eine Assembly mit geladen wird LoadFrom und der Testpfad eine Assembly mit derselben Identität, aber einem anderen Speicherort enthält, kann ein InvalidCastException , oder ein anderes MissingMethodException unerwartetes Verhalten auftreten.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.

  • Wenn ein systemeigenes Image für vorhanden assemblyFile ist, wird es nicht verwendet. Die Assembly kann nicht als domänenneutral geladen werden.

Die Assembly wird mit dem Beweis geladen, den das Ladeprogramm liefert.

Gilt für

LoadFrom(String)

Lädt eine Assembly bei Angabe des Anzeigenamens oder Pfads.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile);
public static System.Reflection.Assembly LoadFrom (string assemblyFile);
static member LoadFrom : string -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String) As Assembly

Parameter

assemblyFile
String

Der Name oder Pfad der Datei, die das Manifest der Assembly enthält.

Gibt zurück

Assembly

Die geladene Assembly.

Ausnahmen

assemblyFile ist null.

assemblyFile wurde nicht gefunden, oder das Modul, das Sie laden möchten, enthält keine Angabe der Dateinamenerweiterung.

Eine gefundene Datei konnte nicht geladen werden.

- oder -

Das Ausführen von Code in Remoteassemblys ist deaktiviert. Weitere Informationen finden Sie unter <loadFromRemoteSources>.

assemblyFile ist keine gültige Assembly; beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess. Weitere Informationen finden Sie in Ausnahmethema.

- oder -

Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und assemblyFile wurde mit einer höheren Version kompiliert.

Eine CodeBase, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermission angegeben.

Der assemblyFile-Parameter ist eine leere Zeichenfolge ("").

Der Assemblyname überschreitet die im System definierte maximale Länge.

Beispiele

Im folgenden Beispiel wird eine Assembly mit ihrem Dateinamen oder Pfad geladen.

Assembly^ SampleAssembly;
SampleAssembly = Assembly::LoadFrom( "c:\\Sample.Assembly.dll" );
// Obtain a reference to a method known to exist in assembly.
MethodInfo^ Method = SampleAssembly->GetTypes()[ 0 ]->GetMethod( "Method1" );
// Obtain a reference to the parameters collection of the MethodInfo instance.
array<ParameterInfo^>^ Params = Method->GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System::String
//   Position = 0
//   Optional=False
for each ( ParameterInfo^ Param in Params )
{
   Console::WriteLine( "Param= {0}", Param->Name );
   Console::WriteLine( "  Type= {0}", Param->ParameterType );
   Console::WriteLine( "  Position= {0}", Param->Position );
   Console::WriteLine( "  Optional= {0}", Param->IsOptional );
}
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
// Obtain a reference to a method known to exist in assembly.
MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
ParameterInfo[] Params = Method.GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System.String
//   Position = 0
//   Optional=False
foreach (ParameterInfo Param in Params)
{
    Console.WriteLine("Param=" + Param.Name.ToString());
    Console.WriteLine("  Type=" + Param.ParameterType.ToString());
    Console.WriteLine("  Position=" + Param.Position.ToString());
    Console.WriteLine("  Optional=" + Param.IsOptional.ToString());
}
Dim SampleAssembly As [Assembly]
SampleAssembly = [Assembly].LoadFrom("c:\Sample.Assembly.dll")
' Obtain a reference to a method known to exist in assembly.
Dim Method As MethodInfo = SampleAssembly.GetTypes()(0).GetMethod("Method1")
' Obtain a reference to the parameters collection of the MethodInfo instance.
Dim Params As ParameterInfo() = Method.GetParameters()
' Display information about method parameters.
' Param = sParam1
'   Type = System.String
'   Position = 0
'   Optional=False
For Each Param As ParameterInfo In Params
    Console.WriteLine(("Param=" + Param.Name.ToString()))
    Console.WriteLine(("  Type=" + Param.ParameterType.ToString()))
    Console.WriteLine(("  Position=" + Param.Position.ToString()))
    Console.WriteLine(("  Optional=" + Param.IsOptional.ToString()))
Next

Hinweise

Der assemblyFile -Parameter muss auf einen URI ohne Escapezeichen verweisen. Diese Methode stellt Escapezeichen für alle ungültigen Zeichen im URI zurt.

Hinweis

Ftp (File Transfer Protocol) wird nicht unterstützt. Wenn der für angegebene URI assemblyFile eine FTP-Adresse ist, wird die Assembly nicht geladen. Es wird keine Ausnahme ausgelöst.

assemblyFile kann absolut oder relativ zum aktuellen Verzeichnis sein, und die Assembly wird in die Domäne des Aufrufers geladen.

Assemblys können in einen von drei Kontexten geladen oder ohne Kontext geladen werden:

  • Der Ladekontext enthält Assemblys, die durch die -Probe gefunden werden: im GAC, in einem Hostassemblyspeicher, wenn die Laufzeit gehostet wird, oder in der und der ApplicationBase PrivateBinPath Anwendungsdomäne. Die meisten Überladungen der Methode Load laden Assemblys in diesen Kontext.

  • Der Load-from-Kontext enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in den verzeichnissen enthalten ist, die durch die Suche durchsucht wurden. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.

    Ab .NET Framework 4 ist das Laden von Assemblys standardmäßig deaktiviert, wenn der URI von einen Remotespeicherort angibt, und die -Methode assemblyFile LoadFrom löst eine FileLoadException aus. Um die Ausführung von Code zu aktivieren, der von Remotestandorten geladen wurde, können Sie das <loadFromRemoteSources> Konfigurationselement verwenden.

  • Der reflektionsbasierte Kontext enthält Assemblys, die mit den Methoden und geladen werden. Code in diesen Kontexten ReflectionOnlyLoad ReflectionOnlyLoadFrom kann nicht ausgeführt werden.

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet sie sich nicht in einem Kontext. Dies gilt für Assemblys, die mithilfe von Überladungen der -Methode geladen werden, die ein Bytearray angeben, das eine Assembly enthält, und für vorübergehende dynamische Assemblys, die mit Reflektions-Emit erstellt und nicht auf dem Load Datenträger gespeichert werden.

Der Load-From-Kontext ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in der -Probe enthalten ist, und lässt jedoch zu, dass Abhängigkeiten von diesem Pfad gefunden und geladen werden, da die Pfadinformationen vom Kontext verwaltet werden.

Die LoadFrom -Methode hat die folgenden Nachteile. Verwenden Sie stattdessen Load.

  • Wenn eine Assembly mit der gleichen Identität bereits geladen wurde, gibt LoadFrom die geladene Assembly zurück, auch wenn ein anderer Pfad angegeben wurde.

  • Wenn eine Assembly mit geladen wird und später eine Assembly im Ladekontext versucht, dieselbe Assembly über den Anzeigenamen zu laden, schlägt der LoadFrom Ladeversuch fehl. Dies kann auftreten, wenn eine Assembly deseriiert wird.

  • Wenn eine Assembly mit geladen wird und der Probepfad eine Assembly mit der gleichen Identität, aber einem anderen Speicherort enthält, kann ein , oder ein anderes LoadFrom InvalidCastException MissingMethodException unerwartetes Verhalten auftreten.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.

  • Wenn ein systemeigenes Image für assemblyFile vorhanden ist, wird es nicht verwendet. Die Assembly kann nicht als domänenneutral geladen werden.

  • Im .NET Framework Version 1.0 und 1.1 wird die Richtlinie nicht angewendet.

Gilt für

LoadFrom(String, Evidence)

Achtung

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Achtung

Diese API ist nun veraltet.

Lädt eine Assembly bei Angabe des Dateinamens oder Pfads und liefert den Sicherheitsbeweis.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence);
[System.Obsolete]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence);
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence) As Assembly

Parameter

assemblyFile
String

Der Name oder Pfad der Datei, die das Manifest der Assembly enthält.

securityEvidence
Evidence

Beweis für das Laden der Assembly.

Gibt zurück

Assembly

Die geladene Assembly.

Attribute

Ausnahmen

assemblyFile ist null.

assemblyFile wurde nicht gefunden, oder das Modul, das Sie laden möchten, enthält keine Angabe der Dateinamenerweiterung.

Eine gefundene Datei konnte nicht geladen werden.

- oder -

Der securityEvidence ist nicht mehrdeutig und wird als ungültig bestimmt.

- oder -

Das Ausführen von Code in Remoteassemblys ist deaktiviert. Weitere Informationen finden Sie unter <loadFromRemoteSources>.

assemblyFile ist keine gültige Assembly; beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess. Weitere Informationen finden Sie in Ausnahmethema.

- oder -

Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und assemblyFile wurde mit einer höheren Version kompiliert.

Eine CodeBase, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermission angegeben.

Der assemblyFile-Parameter ist eine leere Zeichenfolge ("").

Der Assemblyname überschreitet die im System definierte maximale Länge.

Hinweise

Der assemblyFile -Parameter muss auf einen URI ohne Escapezeichen verweisen. Diese Methode stellt Escapezeichen für alle ungültigen Zeichen im URI zurt.

Hinweis

Ftp (File Transfer Protocol) wird nicht unterstützt. Wenn der für angegebene URI assemblyFile eine FTP-Adresse ist, wird die Assembly nicht geladen. Es wird keine Ausnahme ausgelöst.

assemblyFile kann absolut oder relativ zum aktuellen Verzeichnis sein, und die Assembly wird in die Domäne des Aufrufers geladen.

Assemblys können in einen von drei Kontexten geladen oder ohne Kontext geladen werden:

  • Der Ladekontext enthält Assemblys, die durch die -Probe gefunden werden: im GAC, in einem Hostassemblyspeicher, wenn die Laufzeit gehostet wird, oder in der und der ApplicationBase PrivateBinPath Anwendungsdomäne. Die meisten Überladungen der Methode Load laden Assemblys in diesen Kontext.

  • Der Load-from-Kontext enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in den verzeichnissen enthalten ist, die durch die Suche durchsucht wurden. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.

    Ab .NET Framework 4 ist das Laden von Assemblys standardmäßig deaktiviert, wenn der URI von einen Remotespeicherort angibt, und die -Methode assemblyFile LoadFrom löst eine FileLoadException aus. Um die Ausführung von Code zu aktivieren, der von Remotestandorten geladen wurde, können Sie das <loadFromRemoteSources> Konfigurationselement verwenden.

  • Der reflektionsbasierte Kontext enthält Assemblys, die mit den Methoden und geladen werden. Code in diesen Kontexten ReflectionOnlyLoad ReflectionOnlyLoadFrom kann nicht ausgeführt werden.

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet sie sich nicht in einem Kontext. Dies gilt für Assemblys, die mithilfe von Überladungen der -Methode geladen werden, die ein Bytearray angeben, das eine Assembly enthält, und für vorübergehende dynamische Assemblys, die mit Reflektions-Emit erstellt und nicht auf dem Load Datenträger gespeichert werden.

Der Load-From-Kontext ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in der -Probe enthalten ist, und lässt jedoch zu, dass Abhängigkeiten von diesem Pfad gefunden und geladen werden, da die Pfadinformationen vom Kontext verwaltet werden.

Die LoadFrom -Methode hat die folgenden Nachteile. Verwenden Sie stattdessen Load.

  • Wenn eine Assembly mit der gleichen Identität bereits geladen wurde, gibt LoadFrom die geladene Assembly zurück, auch wenn ein anderer Pfad angegeben wurde.

  • Wenn eine Assembly mit geladen wird und später eine Assembly im Ladekontext versucht, dieselbe Assembly über den Anzeigenamen zu laden, schlägt der LoadFrom Ladeversuch fehl. Dies kann auftreten, wenn eine Assembly deserialisiert ist.

  • Wenn eine Assembly mit geladen wird und der Probepfad eine Assembly mit der gleichen Identität, aber einem anderen Speicherort enthält, kann ein , oder ein anderes LoadFrom InvalidCastException MissingMethodException unerwartetes Verhalten auftreten.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.

  • Wenn ein systemeigenes Image für assemblyFile vorhanden ist, wird es nicht verwendet. Die Assembly kann nicht als domänenneutral geladen werden.

  • Im .NET Framework Version 1.0 und 1.1 wird die Richtlinie nicht angewendet.

Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen. Die Regeln für die Zusammenführung von Assemblys und Sicherheitsbeweisen lauten wie folgt:

  • Wenn Sie eine Methode ohne Parameter verwenden, wird die Assembly mit dem Vom Lader LoadFrom Evidence angegebenen Beweis geladen.

  • Wenn Sie die LoadFrom-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt. Beweisteile, die als Argument für die -Methode bereitgestellt werden, haben die Vom Lader LoadFrom bereitgestellten Beweisteile ersetzt.

  • Wenn Sie diese Methode für dieselbe Assembly mehr als einmal aufrufen, aber ein anderer Beweis angegeben ist, löst die Common Language Runtime keine aus, da die Gleichheit und Integrität der verschiedenen Beweisspezifikationen nicht FileLoadException bestimmt werden kann. Der Beweis, der zuerst erfolgreich ist, ist der Beweis, der verwendet wird.

  • Wenn Sie eine Methode LoadFrom mit einem Parameter Byte[] verwenden, um ein COFF-Bild (Common Object File Format) zu laden, wird der Beweis kombiniert. Zone, Url und werden von der Site aufrufenden Assembly geerbt, Hash und und werden von der StrongName COFF-Assembly übernommen.

  • Wenn Sie eine Methode LoadFrom mit einem Parameter verwenden und ein Byte[] Evidence COFF-Image laden, wird nur der angegebene Beweis verwendet. Der Beweis der aufrufenden Assembly und der Beweis des COFF-Images werden ignoriert.

Siehe auch

Gilt für