Freigeben über


Assembly.LoadFrom Methode

Definition

Lädt eine Assembly.

Überlädt

Name Beschreibung
LoadFrom(String, Byte[], AssemblyHashAlgorithm)
Veraltet.

Lädt eine Assembly anhand des Dateinamens oder Pfads, des Hashwerts und des Hashalgorithmus.

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

Lädt eine Assembly anhand des Dateinamens oder Pfads, des Sicherheitsnachweises, des Hashwerts und des Hashalgorithmus.

LoadFrom(String)

Lädt eine Assembly mit dem Dateinamen oder Pfad.

LoadFrom(String, Evidence)
Veraltet.

Lädt eine Assembly anhand des Dateinamens oder Pfads und liefert Sicherheitsnachweise.

Hinweise

Nur .NET Framework: Informationen <loadFromRemoteSources> zum Laden von Assemblys von Remotespeicherorten.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Quelle:
Assembly.cs
Quelle:
Assembly.cs
Quelle:
Assembly.cs
Quelle:
Assembly.cs
Quelle:
Assembly.cs

Achtung

LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.

Lädt eine Assembly anhand des Dateinamens oder 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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
[System.Obsolete("LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.", DiagnosticId="SYSLIB0056", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
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);
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
[<System.Obsolete("LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.", DiagnosticId="SYSLIB0056", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
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 berechneten Hashcodes.

hashAlgorithm
AssemblyHashAlgorithm

Der Hashalgorithmus, der zum Hashing von Dateien und zum Generieren des starken Namens verwendet wird.

Gibt zurück

Die geladene Assembly.

Attribute

Ausnahmen

Nur .NET Core und .NET 5+ : In allen Fällen.

assemblyFile ist null.

assemblyFile wird nicht gefunden, oder das Modul, das Sie laden möchten, gibt keine Dateinamenerweiterung an.

Eine gefundene Datei konnte nicht geladen werden.

- oder -

assemblyFile Gibt einen Speicherort an, der basierend auf <loadFromRemoteSources> deaktiviert ist.

assemblyFile ist keine gültige Assembly für die derzeit geladene Laufzeit; Beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.

Eine Codebasis, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermissionAngegeben.

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

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

Hinweise

Diese API wird in .NET Core/.NET 5+ nicht unterstützt. Diese Methode wird ausgelöst NotSupportedException , wenn sie aufgerufen wird. Verwenden Sie stattdessen LoadFrom(String).

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

Hinweis

Das Dateiübertragungsprotokoll (FTP) wird nicht unterstützt. Wenn der bereitgestellte assemblyFile URI eine FTP-Adresse ist, wird die Assembly nicht geladen. Es wird keine Ausnahme ausgelöst.

assemblyFile kann absolut oder relativ zum aktuellen Verzeichnis sein.

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

  • Der Ladekontext enthält Assemblys, die durch Ausführen 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 Kontext zum Laden enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in der Probing-Datei enthalten ist. LoadFrom, CreateInstanceFromund ExecuteAssembly sind Beispiele für Methoden, die nach Pfad geladen werden.

    Informationen <loadFromRemoteSources> zum Laden von Assemblys von Remotespeicherorten.

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

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet es sich nicht in einem Kontext. Dies gilt für Assemblys, die mithilfe von Überladungen der Load Methode geladen werden, die ein Bytearray mit einer Assembly angeben, und für vorübergehende dynamische Assemblys, die mit Spiegelungsausdruck erstellt und nicht auf dem Datenträger gespeichert wurden.

Mit dem Kontext "Laden aus" kann eine Assembly aus einem Pfad geladen werden, der nicht in der Probing-Datei enthalten ist, und ermöglicht es dennoch, 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 derselben Identität bereits geladen ist, wird die geladene Assembly zurückgegeben, LoadFrom auch wenn ein anderer Pfad angegeben wurde.

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

  • Wenn eine Assembly mit LoadFromgeladen wird und der Probingpfad eine Assembly mit derselben Identität enthält, aber ein anderer Speicherort, ein , ein InvalidCastException, MissingMethodExceptionoder ein anderes unerwartetes Verhalten auftreten kann.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery, oder WebPermission, auf dem angegebenen Pfad.

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

Die Montage wird mit dem Nachweis geladen, dass der Ladegerät zuliefert.

Gilt für:

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.

Lädt eine Assembly anhand des Dateinamens oder Pfads, des Sicherheitsnachweises, des Hashwerts 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);
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
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

Nachweise zum Laden der Assembly.

hashValue
Byte[]

Der Wert des berechneten Hashcodes.

hashAlgorithm
AssemblyHashAlgorithm

Der Hashalgorithmus, der zum Hashing von Dateien und zum Generieren des starken Namens verwendet wird.

Gibt zurück

Die geladene Assembly.

Attribute

Ausnahmen

assemblyFile ist null.

assemblyFile wird nicht gefunden, oder das Modul, das Sie laden möchten, gibt keine Dateinamenerweiterung an.

Eine gefundene Datei konnte nicht geladen werden.

- oder -

Dies securityEvidence ist nicht mehrdeutig und wird als ungültig festgelegt.

- oder -

assemblyFile Gibt einen Speicherort an, der basierend auf <loadFromRemoteSources> deaktiviert ist.

assemblyFile ist keine gültige Assembly für die derzeit geladene Laufzeit; Beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.

Eine Codebasis, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermissionAngegeben.

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

Der Assemblyname überschreitet die vom 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 bereit.

Hinweis

Das Dateiübertragungsprotokoll (FTP) wird nicht unterstützt. Wenn der bereitgestellte assemblyFile URI eine FTP-Adresse ist, wird die Assembly nicht geladen. Es wird keine Ausnahme ausgelöst.

assemblyFile kann absolut oder relativ zum aktuellen Verzeichnis sein.

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

  • Der Ladekontext enthält Assemblys, die durch Das Probing gefunden werden: im GAC, 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 Ladekontext enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in den Verzeichnissen enthalten ist, die durch Probing durchsucht werden. LoadFrom, CreateInstanceFromund ExecuteAssembly sind Beispiele für Methoden, die nach Pfad geladen werden.

    Informationen <loadFromRemoteSources> zum Laden von Assemblys von Remotespeicherorten.

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

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet es sich nicht in einem Kontext. Dies gilt für Assemblys, die mithilfe von Überladungen der Load Methode geladen werden, die ein Bytearray mit einer Assembly angeben, und für vorübergehende dynamische Assemblys, die mit Spiegelungsausdruck erstellt und nicht auf dem Datenträger gespeichert wurden.

Das Laden aus dem Kontext ermöglicht es einer Assembly, aus einem Pfad zu laden, der nicht in der Probing-Datei enthalten ist, und ermöglicht es dennoch, 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 derselben Identität bereits geladen ist, wird die geladene Assembly zurückgegeben, LoadFrom auch wenn ein anderer Pfad angegeben wurde.

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

  • Wenn eine Assembly mit LoadFromgeladen wird und der Probingpfad eine Assembly mit derselben Identität enthält, aber ein anderer Speicherort, ein , ein InvalidCastException, MissingMethodExceptionoder ein anderes unerwartetes Verhalten auftreten kann.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery, oder WebPermission, auf dem angegebenen Pfad.

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

Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen. Die Regeln für die Zusammenführung von Assembly- und Sicherheitsnachweisen sind wie folgt:

  • Wenn Sie eine LoadFrom Methode ohne Evidence Parameter verwenden, wird die Assembly mit dem Nachweis geladen, dass das Ladeprogramm zuliefert.

  • Wenn Sie eine LoadFrom Methode mit einem Evidence Parameter verwenden, werden Nachweise zusammengeführt. Beweisstücke, die als Argument für die LoadFrom Methode angegeben wurden, überlagerten Beweisstücke, die vom Ladeprogramm bereitgestellt wurden.

  • Wenn Sie diese Methode mehrmals für dieselbe Assembly aufrufen, jedoch mit einem anderen angegebenen Nachweis, löst die Common Language Runtime keinen Aus FileLoadException , da die Gleichheit und Integrität der verschiedenen Nachweisspezifikationen nicht bestimmt werden kann. Der Beweis, der zuerst erfolgreich ist, ist der verwendete Beweis.

  • Wenn Sie eine LoadFrom Methode mit einem Byte[] Parameter verwenden, um ein allgemeines Objektdateiformat (COFF)-Bild zu laden, werden Nachweise kombiniert. Zone, Url und Site werden von der aufrufenden Assembly geerbt und StrongNameHash werden von der COFF-Assembly übernommen.

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

Gilt für:

LoadFrom(String)

Quelle:
Assembly.cs
Quelle:
Assembly.cs
Quelle:
Assembly.cs
Quelle:
Assembly.cs
Quelle:
Assembly.cs

Lädt eine Assembly mit dem Dateinamen oder Pfad.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile);
public static System.Reflection.Assembly LoadFrom(string assemblyFile);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member LoadFrom : string -> System.Reflection.Assembly
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

Die geladene Assembly.

Attribute

Ausnahmen

assemblyFile ist null.

assemblyFile wird nicht gefunden, oder das Modul, das Sie laden möchten, gibt keine Dateinamenerweiterung an.

Eine gefundene Datei konnte nicht geladen werden.

- oder -

.NET Framework nur: assemblyFile Gibt einen Speicherort an, der basierend auf <loadFromRemoteSources> deaktiviert ist.

assemblyFile ist keine gültige Assembly für die derzeit geladene Laufzeit; Beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.

Eine Codebasis, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermissionAngegeben.

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

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

Beispiele

Im folgenden Beispiel wird eine Assembly mit dem 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.
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

Diese API ist in .NET Core aus Gründen der Kompatibilität vorhanden, es wird jedoch empfohlen, Überladungen zu verwenden AssemblyLoadContext .

Die Assembly wird in den StandardassemblyContext geladen. Weitere Informationen zum Laden von Assemblys finden Sie im Algorithmus zum Laden verwalteter Assemblys.

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

Hinweis

.NET Framework nur: Ftp (File Transfer Protocol) wird nicht unterstützt. Wenn der bereitgestellte assemblyFile URI eine FTP-Adresse ist, wird die Assembly nicht geladen. Es wird keine Ausnahme ausgelöst.

assemblyFile kann absolut oder relativ zum aktuellen Verzeichnis sein.

Nur .NET Framework: Assemblys können in einen von drei Kontexten geladen oder ohne Kontext geladen werden:

  • Der Ladekontext enthält Assemblys, die durch Das Probing gefunden werden: im GAC, 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 Ladekontext enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in den Verzeichnissen enthalten ist, die durch Probing durchsucht werden. Außerdem können Abhängigkeiten von diesem Pfad gefunden und geladen werden, da die Pfadinformationen vom Kontext verwaltet werden. LoadFrom, CreateInstanceFromund ExecuteAssembly sind Beispiele für Methoden, die nach Pfad geladen werden.

    Informationen <loadFromRemoteSources> zum Laden von Assemblys von Remotespeicherorten.

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

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet es sich nicht in einem Kontext. Dies gilt für Assemblys, die mithilfe von Überladungen der Load Methode geladen werden, die ein Bytearray mit einer Assembly angeben, und für vorübergehende dynamische Assemblys, die mit Spiegelungsausdruck erstellt und nicht auf dem Datenträger gespeichert wurden.

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

  • Wenn eine Assembly mit derselben Identität bereits im Load-from-Kontext geladen ist, LoadFrom wird die geladene Assembly zurückgegeben, selbst wenn ein anderer Pfad angegeben wurde.

  • Eine Assembly kann im Kontext "Laden aus" geladen werden, obwohl eine Assembly mit derselben Identität im Ladekontext vorhanden ist. Die Interoperabilität zwischen den beiden Assemblys funktioniert nicht, was zu Fehlern wie InvalidCastException, oder MissingMethodExceptionanderen unerwarteten Verhaltensweisen führt.

  • Das Aufrufen LoadFrom mit einem Speicherort, der sich im Probingpfad befindet, lädt die Assembly im Ladekontext und nicht im Kontext "Laden aus".

  • Wenn eine Assemblydatei, deren Identität durch eine Bindungsumleitungsrichtlinie übergeben wird, übergeben LoadFromwird, wird die Richtlinie angewendet, und die Assembly wird aus dem Probingpfad im Ladekontext geladen.

  • Wenn eine Assembly im Kontext "laden" geladen wird und später eine Assembly im Ladekontext versucht, dieselbe Assembly nach Anzeigename zu laden, schlägt der Ladeversuch fehl. Dies kann auftreten, wenn eine Assembly deserialisiert wird.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery, oder WebPermission, auf dem angegebenen Pfad.

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

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.

Lädt eine Assembly anhand des Dateinamens oder Pfads und liefert Sicherheitsnachweise.

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);
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
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

Nachweise zum Laden der Assembly.

Gibt zurück

Die geladene Assembly.

Attribute

Ausnahmen

assemblyFile ist null.

assemblyFile wird nicht gefunden, oder das Modul, das Sie laden möchten, gibt keine Dateinamenerweiterung an.

Eine gefundene Datei konnte nicht geladen werden.

- oder -

Dies securityEvidence ist nicht mehrdeutig und wird als ungültig festgelegt.

- oder -

assemblyFile Gibt einen Speicherort an, der basierend auf <loadFromRemoteSources> deaktiviert ist.

assemblyFile ist keine gültige Assembly für die derzeit geladene Laufzeit; Beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.

Eine Codebasis, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermissionAngegeben.

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

Der Assemblyname überschreitet die vom 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 bereit.

Hinweis

Das Dateiübertragungsprotokoll (FTP) wird nicht unterstützt. Wenn der bereitgestellte assemblyFile URI eine FTP-Adresse ist, wird die Assembly nicht geladen. Es wird keine Ausnahme ausgelöst.

assemblyFile kann absolut oder relativ zum aktuellen Verzeichnis sein.

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

  • Der Ladekontext enthält Assemblys, die durch Das Probing gefunden werden: im GAC, 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 Ladekontext enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in den Verzeichnissen enthalten ist, die durch Probing durchsucht werden. LoadFrom, CreateInstanceFromund ExecuteAssembly sind Beispiele für Methoden, die nach Pfad geladen werden.

    Informationen <loadFromRemoteSources> zum Laden von Assemblys von Remotespeicherorten.

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

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet es sich nicht in einem Kontext. Dies gilt für Assemblys, die mithilfe von Überladungen der Load Methode geladen werden, die ein Bytearray mit einer Assembly angeben, und für vorübergehende dynamische Assemblys, die mit Spiegelungsausdruck erstellt und nicht auf dem Datenträger gespeichert wurden.

Das Laden aus dem Kontext ermöglicht es einer Assembly, aus einem Pfad zu laden, der nicht in der Probing-Datei enthalten ist, und ermöglicht es dennoch, 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 derselben Identität bereits geladen ist, wird die geladene Assembly zurückgegeben, LoadFrom auch wenn ein anderer Pfad angegeben wurde.

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

  • Wenn eine Assembly mit LoadFromgeladen wird und der Probingpfad eine Assembly mit derselben Identität enthält, aber ein anderer Speicherort, ein , ein InvalidCastException, MissingMethodExceptionoder ein anderes unerwartetes Verhalten auftreten kann.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery, oder WebPermission, auf dem angegebenen Pfad.

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

Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen. Die Regeln für die Zusammenführung von Assembly- und Sicherheitsnachweisen sind wie folgt:

  • Wenn Sie eine LoadFrom Methode ohne Evidence Parameter verwenden, wird die Assembly mit dem Nachweis geladen, dass das Ladeprogramm zuliefert.

  • Wenn Sie eine LoadFrom Methode mit einem Evidence Parameter verwenden, werden Nachweise zusammengeführt. Beweisstücke, die als Argument für die LoadFrom Methode angegeben wurden, überlagerten Beweisstücke, die vom Ladeprogramm bereitgestellt wurden.

  • Wenn Sie diese Methode mehrmals für dieselbe Assembly aufrufen, jedoch mit einem anderen angegebenen Nachweis, löst die Common Language Runtime keinen Aus FileLoadException , da die Gleichheit und Integrität der verschiedenen Nachweisspezifikationen nicht bestimmt werden kann. Der Beweis, der zuerst erfolgreich ist, ist der verwendete Beweis.

  • Wenn Sie eine LoadFrom Methode mit einem Byte[] Parameter verwenden, um ein allgemeines Objektdateiformat (COFF)-Bild zu laden, werden Nachweise kombiniert. Zone, Url und Site werden von der aufrufenden Assembly geerbt und StrongNameHash werden von der COFF-Assembly übernommen.

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

Weitere Informationen

Gilt für: