Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Assembly.LoadFrom-Methode: (String, Evidence, Byte[], AssemblyHashAlgorithm)

 

Veröffentlicht: Oktober 2016

obsoleteCodeEntityM:System.Reflection.Assembly.LoadFrom(System.String,System.Byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) Hinweis: Diese API ist jetzt veraltet.

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

Namespace:   System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

[ObsoleteAttribute("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 Assembly LoadFrom(
	string assemblyFile,
	Evidence securityEvidence,
	byte[] hashValue,
	AssemblyHashAlgorithm hashAlgorithm
)

Parameter

assemblyFile
Type: System.String

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

securityEvidence
Type: System.Security.Policy.Evidence

Beweis für das Laden der Assembly.

hashValue
Type: System.Byte[]

Der Wert des errechneten Hashcodes.

hashAlgorithm
Type: System.Configuration.Assemblies.AssemblyHashAlgorithm

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

Rückgabewert

Type: System.Reflection.Assembly

Die geladene Assembly.

Exception Condition
ArgumentNullException

assemblyFile ist null.

FileNotFoundException

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

FileLoadException

Eine gefundene Datei konnte nicht geladen werden.

- oder -

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

BadImageFormatException

assemblyFile ist keine gültige Assembly, z. B. eine 32-Bit-Assembly in einem 64-Bit-Prozess. Weitere Informationen finden Sie im Thema zu Ausnahmen.

- oder -

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

SecurityException

Eine Codebasis, die nicht mit „file://“ beginnt, wurde ohne die erforderliche WebPermission angegeben.

ArgumentException

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

PathTooLongException

Der Assemblyname ist länger als MAX_PATH Zeichen.

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

System_CAPS_noteHinweis

Dateiübertragungsprotokoll (FTP) wird nicht unterstützt. Wenn für der URI angegeben assemblyFile eine FTP-Adresse, die Assembly wird nicht geladen. Es werden keine Ausnahmen ausgelöst.

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

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

  • Der Load-Kontext enthält Überprüfung gefundene Assemblys: im GAC, in eine Hostassembly zu speichern, wenn die Laufzeit gehostet ist, oder in der ApplicationBase und PrivateBinPath der Anwendungsdomäne. Die meisten Überladungen der Load -Methode Laden von Assemblys in diesem Kontext.

  • Der Load-Kontext enthält Assemblys, die für die der Benutzer einen Pfad, der nicht in den Verzeichnissen, die Überprüfung durch Durchsuchen enthalten bereitgestellt. LoadFrom, CreateInstanceFrom, und ExecuteAssembly sind Beispiele für Methoden, die anhand des Pfads geladen.

  • Der ReflectionOnly Kontext enthält Assemblys geladen werden, mit der ReflectionOnlyLoad und ReflectionOnlyLoadFrom Methoden, Code in diesen Kontexten können nicht ausgeführt werden.

  • Wenn der Benutzer generiert oder die Assembly gefunden, ist es nicht in jedem Kontext. Dies gilt für die Verwendung von Überladungen der geladenen Assemblys die Load -Methode, die ein Bytearray mit einer Assembly angeben, flüchtige dynamische Assemblys mit Reflektion erstellt auszugeben und nicht auf dem Datenträger gespeichert.

Der Load-Kontext ermöglicht es einer Assembly aus einem Pfad, der nicht in der Suche enthalten sein und ermöglicht noch Abhängigkeiten auf diesem Pfad gefunden und geladen werden, da die Pfadinformationen vom Kontext beibehalten wird.

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

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

  • Wenn eine Assembly geladen wurde mit LoadFrom, und später eine Assembly in den Load-Kontext versucht, dieselbe Assembly über den Anzeigenamen zu laden, Auslastungstest fehlschlägt. Dies kann auftreten, wenn eine Assembly deserialisiert wird.

  • Wird eine Assembly mit LoadFrom, und die Überprüfungspfad enthält eine Assembly mit gleicher Identität, aber einen anderen Speicherort, eine InvalidCastException, MissingMethodException, oder anderes unerwartetes Verhalten auftreten kann.

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

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

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

Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen. Regeln für die Assembly und den Sicherheitsbeweis Zusammenführen sind wie folgt:

  • Bei Verwendung einer LoadFrom Methode ohne Evidence -Parameter, wird die Assembly mit der das Ladeprogramm bereitgestellten Beweisen geladen.

  • Bei Verwendung einer LoadFrom Methode mit einer Evidence Parameter Beweise werden zusammengeführt. Beweise, die als Argument an die LoadFrom Methode ersetzen vom Ladeprogramm bereitgestellte Beweise.

  • Wenn Sie diese Methode mehrmals für dieselbe Assembly, aber einen anderen Beweis angegebenen aufrufen, die common Language Runtime löst ein FileLoadException da die Gleichheit und Integrität der anderen Beweisspezifikationen ermittelt werden können. Der Beweis, der zuerst erfolgreich ist, wird der Beweis, der verwendet wird.

  • Bei Verwendung einer LoadFrom Methode mit einer Byte[] Parameter Laden Sie ein Image common Object File Format (COFF), Beweise kombiniert wird. Zone, Url und Site werden von der aufrufenden Assembly geerbt und Hash und StrongName der COFF-Assembly entnommen werden.

  • Bei Verwendung einer LoadFrom -Methode mit einem Byte[] Parameter und Evidence zum Laden eines COFF-Images wird nur die bereitgestellte Beweise verwendet. Von der aufrufenden Assembly und vom COFF-Image Beweise werden ignoriert.

SecurityPermission

to load an assembly with evidence. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.ControlEvidence

FileIOPermission

for reading a URI that begins with "file://". Associated enumeration: F:System.Security.Permissions.FileIOPermissionAccess.Read

WebPermission

for reading a URI that does not begin with "file://".

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: