Assembly.LoadFrom Methode

Definition

Lädt eine Assembly.

Überlädt

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
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.

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

Hinweise

Ab .NET Framework 4 ist die Möglichkeit, Code in Assemblys auszuführen, die von Remotespeicherorten geladen werden, standardmäßig deaktiviert, und der Aufruf der LoadFrom -Methode löst einen ausFileLoadException. Um die Assembly zu laden und ihren Code auszuführen, müssen Sie einen der folgenden Schritte 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.

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

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

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 für die derzeit geladene Runtime; Beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.

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 bereit.

Hinweis

Das Dateiübertragungsprotokoll (FTP) wird nicht unterstützt. Wenn der für assemblyFile angegebene 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 Testen 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 Kontext zum Laden aus enthält Assemblys, für die der Benutzer einen Pfad angegeben hat, der nicht in den Durchsuchungsverzeichnissen enthalten ist. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.

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

  • Der Reine Reflektionskontext enthält Assemblys, die mit den ReflectionOnlyLoad Methoden und ReflectionOnlyLoadFrom geladen werden. 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 mit einer Assembly angeben, und für vorübergehende dynamische Assemblys, die mit Reflektionsausdruck erstellt und nicht auf dem Datenträger gespeichert werden.

Der Kontext "Laden aus" ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in die Untersuchung einbezogen ist, und ermöglicht dennoch das Auffinden und Laden von Abhängigkeiten von diesem Pfad, 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 LoadFromgeladen 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 ist.

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

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

  • Wenn ein natives Image für assemblyFilevorhanden 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 Vom Ladeprogramm bereitgestellten Nachweis geladen.

  • Wenn Sie die LoadFrom-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt. Beweisstücke, die als Argument für die LoadFrom Methode angegeben werden, ersetzen die vom Loader gelieferten Beweisstücke.

  • Wenn Sie diese Methode mehrmals für dieselbe Assembly aufrufen, aber einen anderen Nachweis angeben, 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, ist der verwendete Beweis.

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

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

Gilt für:

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

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

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

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 für die derzeit geladene Runtime; Beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.

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 bereit.

Hinweis

Das Dateiübertragungsprotokoll (FTP) wird nicht unterstützt. Wenn der für assemblyFile angegebene 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 Testen gefunden werden: im globalen Assemblycache, 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 Kontext zum Laden aus enthält Assemblys, für die der Benutzer einen Pfad angegeben hat, der nicht in die Untersuchung einbezogen ist. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.

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

  • Der Reine Reflektionskontext enthält Assemblys, die mit den ReflectionOnlyLoad Methoden und ReflectionOnlyLoadFrom geladen werden. 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 mit einer Assembly angeben, und für vorübergehende dynamische Assemblys, die mit Reflektionsausdruck erstellt und nicht auf dem Datenträger gespeichert werden.

Mit dem Kontext "Laden aus" kann eine Assembly aus einem Pfad geladen werden, der nicht in die Untersuchung eingeschlossen ist, und dennoch können 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 LoadFromgeladen 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 ist.

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

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

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

Die Assembly wird mit dem Nachweis geladen, den der Lader liefert.

Gilt für:

LoadFrom(String)

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

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

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 für die derzeit geladene Runtime; Beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.

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 bereit.

Hinweis

Das Dateiübertragungsprotokoll (FTP) wird nicht unterstützt. Wenn der für assemblyFile angegebene 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 Testen 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 Kontext zum Laden aus enthält Assemblys, für die der Benutzer einen Pfad angegeben hat, der nicht in den Durchsuchungsverzeichnissen enthalten ist. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.

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

  • Der Reine Reflektionskontext enthält Assemblys, die mit den ReflectionOnlyLoad Methoden und ReflectionOnlyLoadFrom geladen werden. 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 mit einer Assembly angeben, und für vorübergehende dynamische Assemblys, die mit Reflektionsausdruck erstellt und nicht auf dem Datenträger gespeichert werden.

Der Kontext "Laden aus" ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in die Untersuchung einbezogen ist, und ermöglicht dennoch das Auffinden und Laden von Abhängigkeiten von diesem Pfad, 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 im LoadFrom-Kontext geladen wurde, gibt LoadFrom die geladene Assembly zurück, auch wenn ein anderer Pfad angegeben wurde.

  • Eine Assembly kann im Kontext zum Laden von geladen werden, auch wenn eine Assembly mit der gleichen Identität im Ladekontext vorhanden ist. Die Interoperabilität zwischen den beiden Assemblys funktioniert nicht, was zu Fehlern wie InvalidCastException, MissingMethodExceptionoder einem anderen unerwarteten Verhalten führt.

  • Wenn Sie LoadFrom einen Speicherort aufrufen, der sich im Untersuchungspfad befindet, wird die Assembly im Ladekontext und nicht im Kontext zum Laden von geladen.

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

  • Wenn eine Assembly im Kontext "Laden aus" 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 ist.

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

  • Wenn ein natives Image für assemblyFilevorhanden 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 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);
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

Beweis für das Laden der Assembly.

Gibt zurück

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 für die derzeit geladene Runtime; Beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.

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 bereit.

Hinweis

Das Dateiübertragungsprotokoll (FTP) wird nicht unterstützt. Wenn der für assemblyFile angegebene 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 Testen 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 Kontext zum Laden aus enthält Assemblys, für die der Benutzer einen Pfad angegeben hat, der nicht in den Durchsuchungsverzeichnissen enthalten ist. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.

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

  • Der Reine Reflektionskontext enthält Assemblys, die mit den ReflectionOnlyLoad Methoden und ReflectionOnlyLoadFrom geladen werden. 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 mit einer Assembly angeben, und für vorübergehende dynamische Assemblys, die mit Reflektionsausdruck erstellt und nicht auf dem Datenträger gespeichert werden.

Der Kontext "Laden aus" ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in die Untersuchung einbezogen ist, und ermöglicht dennoch das Auffinden und Laden von Abhängigkeiten von diesem Pfad, 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 LoadFromgeladen 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 ist.

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

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

  • Wenn ein natives Image für assemblyFilevorhanden 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 das Zusammenführen von Assembly- und Sicherheitsnachweisen sind wie folgt:

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

  • Wenn Sie die LoadFrom-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt. Beweisstücke, die als Argument für die LoadFrom Methode angegeben werden, ersetzten die vom Ladeprogramm gelieferten Beweise.

  • 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.

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

  • Wenn Sie eine LoadFrom 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.

Weitere Informationen

Gilt für: