Assembly.LoadFrom Assembly.LoadFrom Assembly.LoadFrom Assembly.LoadFrom Method

Definition

Lädt eine Assembly.Loads an assembly.

Überlädt

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

Lädt eine Assembly bei Angabe des Dateinamens bzw. -pfads, des Hashwerts, der Sicherheitsbeweise und des Hashalgorithmus.Loads an assembly given its file name or path, security evidence, hash value, and hash algorithm.

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

Lädt eine Assembly bei Angabe des Dateinamens bzw. -pfads, des Hashwerts und des Hashalgorithmus.Loads an assembly given its file name or path, hash value, and hash algorithm.

LoadFrom(String) LoadFrom(String) LoadFrom(String) LoadFrom(String)

Lädt eine Assembly bei Angabe des Anzeigenamens oder Pfads.Loads an assembly given its file name or path.

LoadFrom(String, Evidence) LoadFrom(String, Evidence) LoadFrom(String, Evidence) LoadFrom(String, Evidence)

Lädt eine Assembly bei Angabe des Dateinamens oder Pfads und liefert den Sicherheitsbeweis.Loads an assembly given its file name or path and supplying security evidence.

Hinweise

Ab .NET Framework 4 ist die Möglichkeit, Code in Assemblys auszuführen, die von Remote Standorten geladen wurden, standardmäßig deaktiviert, und LoadFrom der-aufrufzug löst eine FileLoadExceptionaus.Starting with .NET Framework 4, the ability to execute code in assemblies loaded from remote locations is disabled by default, and the call to the LoadFrom method throws a FileLoadException. Um die Assembly zu laden und Ihren Code auszuführen, müssen Sie eine der folgenden Aktionen ausführen:To load the assembly and execute its code, you must either:

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

Warnung

Diese API ist jetzt veraltet.

Lädt eine Assembly bei Angabe des Dateinamens bzw. -pfads, des Hashwerts, der Sicherheitsbeweise und des Hashalgorithmus.Loads an assembly given its file name or path, security evidence, hash value, and hash algorithm.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete]
[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
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

Parameter

assemblyFile
String String String String

Der Name oder Pfad der Datei, die das Manifest der Assembly enthält.The name or path of the file that contains the manifest of the assembly.

securityEvidence
Evidence Evidence Evidence Evidence

Beweis für das Laden der Assembly.Evidence for loading the assembly.

hashValue
Byte[]

Der Wert des errechneten Hashcodes.The value of the computed hash code.

hashAlgorithm
AssemblyHashAlgorithm AssemblyHashAlgorithm AssemblyHashAlgorithm AssemblyHashAlgorithm

Der Hashalgorithmus für das Hashing von Dateien und das Generieren des starken Namens.The hash algorithm used for hashing files and for generating the strong name.

Gibt zurück

Die geladene Assembly.The loaded assembly.

Ausnahmen

assemblyFile wurde nicht gefunden, oder das Modul, das Sie laden möchten, enthält keine Angabe der Dateinamenerweiterung.assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

Eine gefundene Datei konnte nicht geladen werden.A file that was found could not be loaded.

- oder --or- Der securityEvidence ist nicht mehrdeutig und wird als ungültig bestimmt.The securityEvidence is not ambiguous and is determined to be invalid.

- oder --or-

Das Ausführen von Code in Remoteassemblys ist deaktiviert.The ability to execute code in remote assemblies is disabled. Weitere Informationen finden Sie unter <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile ist keine gültige Assembly; beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Weitere Informationen finden Sie in Ausnahmethema.See the exception topic for more information.

- oder --or- Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und assemblyFile wurde mit einer höheren Version kompiliert.Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

Eine CodeBase, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermission angegeben.A codebase that does not start with "file://" was specified without the required WebPermission.

Der assemblyFile-Parameter ist eine leere Zeichenfolge ("").The assemblyFile parameter is an empty string ("").

Der Assemblyname überschreitet die im System definierte maximale Länge.The assembly name exceeds the system-defined maximum length.

Hinweise

Der assemblyFile -Parameter muss auf einen URI ohne Escapezeichen verweisen.The assemblyFile parameter must refer to a URI without escape characters. Diese Methode liefert Escapezeichen für alle ungültigen Zeichen im URI.This method supplies escape characters for all invalid characters in the URI.

Hinweis

FTP (File Transfer Protocol) wird nicht unterstützt.File transfer protocol (FTP) is not supported. Wenn der für assemblyFile angegebene URI eine FTP-Adresse ist, wird die Assembly nicht geladen.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. Es werden keine Ausnahmen ausgelöst.No exception is thrown.

assemblyFilekann absolut oder relativ zum aktuellen Verzeichnis sein, und die Assembly wird in die Domäne des Aufrufers geladen.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Assemblys können in einen von drei Kontexten geladen werden oder können ohne Kontext geladen werden:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • Der Load-Kontext enthält Assemblys, die durch die Überprüfung gefunden werden: im GAC, in einem Hostassemblyspeicher, ApplicationBase Wenn PrivateBinPath die Laufzeit gehostet wird, oder in und der Anwendungsdomäne.The load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. Die meisten Überladungen der Methode Load laden Assemblys in diesen Kontext.Most overloads of the Load method load assemblies into this context.

  • Der Load-from-Kontext enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in den von der Suche gesuchten Verzeichnissen enthalten ist.The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    Beginnend mit .NET Framework 4, wenn der URI von assemblyFile einen Remote Speicherort angibt, ist das Laden von Assemblys Standard LoadFrom mäßig deaktiviert, FileLoadExceptionund die-Methode löst eine aus.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Sie können das-Konfigurationselement verwenden, um die <loadFromRemoteSources> Ausführung von Code zu ermöglichen, der von Remote Standorten geladen wurde.To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • Der reflektionsgeschützte Kontext enthält Assemblys ReflectionOnlyLoad , ReflectionOnlyLoadFrom die mit der-Methode und der-Methode geladen wurden. Code in diesen Kontexten kann nichtThe reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet er sich nicht in einem beliebigen Kontext.If the user generated or found the assembly, it is not in any context. Dies gilt für Assemblys, die mithilfe von Load über Ladungen der-Methode geladen werden, die ein Bytearray angeben, das eine Assembly enthält, sowie für vorübergehende dynamische Assemblys, die mit der Reflektionsausgabe erstelltThis applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

Der Load-from-Kontext ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in der Überprüfung enthalten ist, und ermöglicht es, Abhängigkeiten auf diesem Pfad zu finden und zu laden, da die Pfadinformationen durch den Kontext verwaltet werden.The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

Die LoadFrom -Methode weist die folgenden Nachteile auf.The LoadFrom method has the following disadvantages. Verwenden Sie stattdessen Load.Consider using Load instead.

  • 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.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Wenn eine Assembly mit LoadFromgeladen wird und eine Assembly im Lade Kontext später versucht, dieselbe Assembly nach dem anzeigen Amen zu laden, schlägt der Lade Versuch fehl.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Dies kann auftreten, wenn eine Assembly deserialisiert ist.This can occur when an assembly is deserialized.

  • Wenn eine Assembly mit LoadFromgeladen wird und der Suchpfad eine Assembly mit der gleichen Identität, aber einem anderen Speicherort enthält, kann ein MissingMethodException InvalidCastException, oder ein anderes unerwartetes Verhalten auftreten.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Wenn ein natives Image für assemblyFilevorhanden ist, wird es nicht verwendet.If a native image exists for assemblyFile, it is not used. Die Assembly kann nicht als Domänen neutral geladen werden.The assembly cannot be loaded as domain neutral.

  • In den .NET Framework, Version 1,0 und 1,1, wird die Richtlinie nicht angewendet.In the .NET Framework version 1.0 and 1.1, policy is not applied.

Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen.Whether certain permissions are granted or not granted to an assembly is based on evidence. Die Regeln für die Zusammenführung von Assemblys und Sicherheits beweisen lauten wie folgt:The rules for assembly and security evidence merging are as follows:

  • Wenn Sie eine LoadFrom Methode ohne Evidence Parameter verwenden, wird die Assembly mit den Beweisen geladen, die das Lade Modul bereitstellt.When you use a LoadFrom method with no Evidence parameter, the assembly is loaded with the evidence that the loader supplies.

  • Wenn Sie die LoadFrom-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt.When you use a LoadFrom method with an Evidence parameter, pieces of evidence are merged. Beweis Elemente, die als Argument für die LoadFrom Methode bereitgestellt werden, ersetzen die von dem Lade Modul bereitgestellten Beweise.Pieces of evidence supplied as an argument to the LoadFrom method supersede pieces of evidence supplied by the loader.

  • Wenn Sie diese Methode mehrmals in derselben Assembly, aber mit einem anderen angegebenen Beweis, aufgerufen haben, löst die Common Language Runtime keinen FileLoadException aus, da die Gleichheit und Integrität der verschiedenen Beweis Spezifikationen nicht bestimmt werden kann.If you call this method more than once on the same assembly but with a different evidence specified, the common language runtime does not throw a FileLoadException because the equality and integrity of the different evidence specifications cannot be determined. Der erste Erfolg ist der Beweis, der verwendet wird.The evidence that first succeeds is the evidence that is used.

  • Wenn Sie eine- LoadFrom Methode mit einem Byte[] -Parameter verwenden, um ein Common Object File Format Bild (COFF) zu laden, wird der Beweis zusammengefasst.When you use a LoadFrom method with a Byte[] parameter to load a common object file format (COFF) image, evidence is combined. Zone, Url und Site werden StrongName vonHash der aufrufenden Assembly geerbt, und und werden aus der COFF-Assembly entnommen.Zone, Url and Site are inherited from the calling assembly, and Hash and StrongName are taken from the COFF assembly.

  • Wenn Sie eine LoadFrom Methode mit einem Byte[] -Parameter verwenden Evidence und ein COFF-Bild laden, wird nur der angegebene Beweis verwendet.When you use a LoadFrom method with a Byte[] parameter and Evidence to load a COFF image, only the supplied evidence is used. Der Beweis der aufrufenden Assembly und der Beweis für das COFF-Bild werden ignoriert.Evidence of the calling assembly and evidence of the COFF image is ignored.

Sicherheit

SecurityPermission
So laden Sie eine Assembly mit beweisento load an assembly with evidence. Zugehörige Enumeration:ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
zum Lesen eines URIs, der mit "file://" beginnt.for reading a URI that begins with "file://". Zugehörige Enumeration:ReadAssociated enumeration: Read

WebPermission
zum Lesen eines URIs, der nicht mit "file://" beginnt.for reading a URI that does not begin with "file://".

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

Lädt eine Assembly bei Angabe des Dateinamens bzw. -pfads, des Hashwerts und des Hashalgorithmus.Loads an assembly given its file name or path, hash value, and hash algorithm.

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

Der Name oder Pfad der Datei, die das Manifest der Assembly enthält.The name or path of the file that contains the manifest of the assembly.

hashValue
Byte[]

Der Wert des errechneten Hashcodes.The value of the computed hash code.

hashAlgorithm
AssemblyHashAlgorithm AssemblyHashAlgorithm AssemblyHashAlgorithm AssemblyHashAlgorithm

Der Hashalgorithmus für das Hashing von Dateien und das Generieren des starken Namens.The hash algorithm used for hashing files and for generating the strong name.

Gibt zurück

Die geladene Assembly.The loaded assembly.

Ausnahmen

assemblyFile wurde nicht gefunden, oder das Modul, das Sie laden möchten, enthält keine Angabe zur Dateinamenerweiterung.assemblyFile is not found, or the module you are trying to load does not specify a file name extension.

Eine gefundene Datei konnte nicht geladen werden.A file that was found could not be loaded.

- oder --or-

Das Ausführen von Code in Remoteassemblys ist deaktiviert.The ability to execute code in remote assemblies is disabled. Weitere Informationen finden Sie unter <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile ist keine gültige Assembly; beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Weitere Informationen finden Sie in Ausnahmethema.See the exception topic for more information.

- oder --or- assemblyFile wurde mit einer höheren Version der Common Language Runtime als die derzeit geladene Version kompiliert.assemblyFile was compiled with a later version of the common language runtime than the version that is currently loaded.

Eine Codebasis, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermission angegeben.A codebase that does not start with "file://" was specified without the required WebPermission.

Der assemblyFile-Parameter ist eine leere Zeichenfolge ("").The assemblyFile parameter is an empty string ("").

Der Assemblyname überschreitet die im System definierte maximale Länge.The assembly name exceeds the system-defined maximum length.

Hinweise

Der assemblyFile -Parameter muss auf einen URI ohne Escapezeichen verweisen.The assemblyFile parameter must refer to a URI without escape characters. Diese Methode liefert Escapezeichen für alle ungültigen Zeichen im URI.This method supplies escape characters for all invalid characters in the URI.

Hinweis

FTP (File Transfer Protocol) wird nicht unterstützt.File transfer protocol (FTP) is not supported. Wenn der für assemblyFile angegebene URI eine FTP-Adresse ist, wird die Assembly nicht geladen.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. Es werden keine Ausnahmen ausgelöst.No exception is thrown.

assemblyFilekann absolut oder relativ zum aktuellen Verzeichnis sein, und die Assembly wird in die Domäne des Aufrufers geladen.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Assemblys können in einen von drei Kontexten geladen werden oder können ohne Kontext geladen werden:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • Der Load-Kontext enthält Assemblys, die Durchsuchen gefunden werden: im globalen Assemblycache, in einem Hostassemblyspeicher, ApplicationBase Wenn PrivateBinPath die Laufzeit gehostet wird, oder in und der Anwendungsdomäne.The load context contains assemblies found by probing: in the global assembly cache, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. Die meisten Überladungen der Methode Load laden Assemblys in diesen Kontext.Most overloads of the Load method load assemblies into this context.

  • Der Load-from-Kontext enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in der Suche enthalten ist.The load-from context contains assemblies for which the user provided a path that is not included in probing. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    Beginnend mit .NET Framework 4, wenn der URI von assemblyFile einen Remote Speicherort angibt, ist das Laden von Assemblys Standard LoadFrom mäßig deaktiviert, FileLoadExceptionund die-Methode löst eine aus.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Sie können das-Konfigurationselement verwenden, um die <loadFromRemoteSources> Ausführung von Code zu ermöglichen, der von Remote Standorten geladen wurde.To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • Der reflektionsgeschützte Kontext enthält Assemblys ReflectionOnlyLoad , ReflectionOnlyLoadFrom die mit der-Methode und der-Methode geladen wurden. Code in diesen Kontexten kann nichtThe reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet er sich nicht in einem beliebigen Kontext.If the user generated or found the assembly, it is not in any context. Dies gilt für Assemblys, die mithilfe von Load über Ladungen der-Methode geladen werden, die ein Bytearray angeben, das eine Assembly enthält, sowie für vorübergehende dynamische Assemblys, die mit der Reflektionsausgabe erstelltThis applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

Der Load-from-Kontext ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in der Überprüfung enthalten ist, und ermöglicht es, Abhängigkeiten auf diesem Pfad zu finden und zu laden, da die Pfadinformationen durch den Kontext verwaltet werden.The load-from context allows an assembly to be loaded from a path that is not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

Die LoadFrom -Methode weist die folgenden Nachteile auf.The LoadFrom method has the following disadvantages. Verwenden Sie stattdessen Load.Consider using Load instead.

  • 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.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Wenn eine Assembly mit LoadFromgeladen wird und eine Assembly im Lade Kontext später versucht, dieselbe Assembly nach dem anzeigen Amen zu laden, schlägt der Lade Versuch fehl.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Dies kann auftreten, wenn eine Assembly deserialisiert ist.This can occur when an assembly is deserialized.

  • Wenn eine Assembly mit LoadFromgeladen wird und der Suchpfad eine Assembly mit der gleichen Identität, aber einem anderen Speicherort enthält, kann ein MissingMethodException InvalidCastException, oder ein anderes unerwartetes Verhalten auftreten.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Wenn ein natives Image für assemblyFilevorhanden ist, wird es nicht verwendet.If a native image exists for assemblyFile, it is not used. Die Assembly kann nicht als domänenneutral geladen werden.The assembly cannot be loaded as domain-neutral.

Die Assembly wird mit dem Beweis geladen, den das Lade Modul bereitstellt.The assembly is loaded with the evidence that the loader supplies.

Sicherheit

SecurityPermission
So laden Sie eine Assembly mit beweisento load an assembly with evidence. Zugehörige Enumeration:ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
zum Lesen eines URIs, der mit "file://" beginnt.for reading a URI that begins with "file://". Zugehörige Enumeration:ReadAssociated enumeration: Read

WebPermission
zum Lesen eines URIs, der nicht mit "file://" beginnt.for reading a URI that does not begin with "file://".

LoadFrom(String) LoadFrom(String) LoadFrom(String) LoadFrom(String)

Lädt eine Assembly bei Angabe des Anzeigenamens oder Pfads.Loads an assembly given its file name or path.

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 String String String

Der Name oder Pfad der Datei, die das Manifest der Assembly enthält.The name or path of the file that contains the manifest of the assembly.

Gibt zurück

Die geladene Assembly.The loaded assembly.

Ausnahmen

assemblyFile wurde nicht gefunden, oder das Modul, das Sie laden möchten, enthält keine Angabe der Dateinamenerweiterung.assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

Eine gefundene Datei konnte nicht geladen werden.A file that was found could not be loaded.

- oder --or-

Das Ausführen von Code in Remoteassemblys ist deaktiviert.The ability to execute code in remote assemblies is disabled. Weitere Informationen finden Sie unter <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile ist keine gültige Assembly; beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Weitere Informationen finden Sie in Ausnahmethema.See the exception topic for more information.

- oder --or- Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und assemblyFile wurde mit einer höheren Version kompiliert.Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

Eine CodeBase, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermission angegeben.A codebase that does not start with "file://" was specified without the required WebPermission.

Der assemblyFile-Parameter ist eine leere Zeichenfolge ("").The assemblyFile parameter is an empty string ("").

Der Assemblyname überschreitet die im System definierte maximale Länge.The assembly name exceeds the system-defined maximum length.

Beispiele

Im folgenden Beispiel wird eine Assembly bei Angabe des Datei namens oder Pfads geladen.The following example loads an assembly given its file name or path.

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.The assemblyFile parameter must refer to a URI without escape characters. Diese Methode liefert Escapezeichen für alle ungültigen Zeichen im URI.This method supplies escape characters for all invalid characters in the URI.

Hinweis

FTP (File Transfer Protocol) wird nicht unterstützt.File transfer protocol (FTP) is not supported. Wenn der für assemblyFile angegebene URI eine FTP-Adresse ist, wird die Assembly nicht geladen.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. Es werden keine Ausnahmen ausgelöst.No exception is thrown.

assemblyFilekann absolut oder relativ zum aktuellen Verzeichnis sein, und die Assembly wird in die Domäne des Aufrufers geladen.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Assemblys können in einen von drei Kontexten geladen werden oder können ohne Kontext geladen werden:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • Der Load-Kontext enthält Assemblys, die durch die Überprüfung gefunden werden: im GAC, in einem Hostassemblyspeicher, ApplicationBase Wenn PrivateBinPath die Laufzeit gehostet wird, oder in und der Anwendungsdomäne.The load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. Die meisten Überladungen der Methode Load laden Assemblys in diesen Kontext.Most overloads of the Load method load assemblies into this context.

  • Der Load-from-Kontext enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in den von der Suche gesuchten Verzeichnissen enthalten ist.The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    Beginnend mit .NET Framework 4, wenn der URI von assemblyFile einen Remote Speicherort angibt, ist das Laden von Assemblys Standard LoadFrom mäßig deaktiviert, FileLoadExceptionund die-Methode löst eine aus.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Sie können das-Konfigurationselement verwenden, um die <loadFromRemoteSources> Ausführung von Code zu ermöglichen, der von Remote Standorten geladen wurde.To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • Der reflektionsgeschützte Kontext enthält Assemblys ReflectionOnlyLoad , ReflectionOnlyLoadFrom die mit der-Methode und der-Methode geladen wurden. Code in diesen Kontexten kann nichtThe reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet er sich nicht in einem beliebigen Kontext.If the user generated or found the assembly, it is not in any context. Dies gilt für Assemblys, die mithilfe von Load über Ladungen der-Methode geladen werden, die ein Bytearray angeben, das eine Assembly enthält, sowie für vorübergehende dynamische Assemblys, die mit der Reflektionsausgabe erstelltThis applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

Der Load-from-Kontext ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in der Überprüfung enthalten ist, und ermöglicht es, Abhängigkeiten auf diesem Pfad zu finden und zu laden, da die Pfadinformationen durch den Kontext verwaltet werden.The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

Die LoadFrom -Methode weist die folgenden Nachteile auf.The LoadFrom method has the following disadvantages. Verwenden Sie stattdessen Load.Consider using Load instead.

  • 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.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Wenn eine Assembly mit LoadFromgeladen wird und eine Assembly im Lade Kontext später versucht, dieselbe Assembly nach dem anzeigen Amen zu laden, schlägt der Lade Versuch fehl.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Dies kann vorkommen, wenn eine Assembly deserialisiert wird.This can occur when an assembly is de-serialized.

  • Wenn eine Assembly mit LoadFromgeladen wird und der Suchpfad eine Assembly mit der gleichen Identität, aber einem anderen Speicherort enthält, kann ein MissingMethodException InvalidCastException, oder ein anderes unerwartetes Verhalten auftreten.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Wenn ein natives Image für assemblyFilevorhanden ist, wird es nicht verwendet.If a native image exists for assemblyFile, it is not used. Die Assembly kann nicht als Domänen neutral geladen werden.The assembly cannot be loaded as domain neutral.

  • In den .NET Framework, Version 1,0 und 1,1, wird die Richtlinie nicht angewendet.In the .NET Framework version 1.0 and 1.1, policy is not applied.

Sicherheit

FileIOPermission
zum Lesen eines URIs, der mit "file://" beginnt.for reading a URI that begins with "file://". Zugehörige Enumeration:ReadAssociated enumeration: Read

WebPermission
zum Lesen eines URIs, der nicht mit "file://" beginnt.for reading a URI that does not begin with "file://".

LoadFrom(String, Evidence) LoadFrom(String, Evidence) LoadFrom(String, Evidence) LoadFrom(String, Evidence)

Warnung

Diese API ist jetzt veraltet.

Lädt eine Assembly bei Angabe des Dateinamens oder Pfads und liefert den Sicherheitsbeweis.Loads an assembly given its file name or path and supplying security evidence.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence);
[System.Obsolete]
[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
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence) As Assembly

Parameter

assemblyFile
String String String String

Der Name oder Pfad der Datei, die das Manifest der Assembly enthält.The name or path of the file that contains the manifest of the assembly.

securityEvidence
Evidence Evidence Evidence Evidence

Beweis für das Laden der Assembly.Evidence for loading the assembly.

Gibt zurück

Die geladene Assembly.The loaded assembly.

Ausnahmen

assemblyFile wurde nicht gefunden, oder das Modul, das Sie laden möchten, enthält keine Angabe der Dateinamenerweiterung.assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

Eine gefundene Datei konnte nicht geladen werden.A file that was found could not be loaded.

- oder --or- Der securityEvidence ist nicht mehrdeutig und wird als ungültig bestimmt.The securityEvidence is not ambiguous and is determined to be invalid.

- oder --or-

Das Ausführen von Code in Remoteassemblys ist deaktiviert.The ability to execute code in remote assemblies is disabled. Weitere Informationen finden Sie unter <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile ist keine gültige Assembly; beispielsweise eine 32-Bit-Assembly in einem 64-Bit-Prozess.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Weitere Informationen finden Sie in Ausnahmethema.See the exception topic for more information.

- oder --or- Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und assemblyFile wurde mit einer höheren Version kompiliert.Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

Eine CodeBase, die nicht mit "file://" beginnt, wurde ohne die erforderliche WebPermission angegeben.A codebase that does not start with "file://" was specified without the required WebPermission.

Der assemblyFile-Parameter ist eine leere Zeichenfolge ("").The assemblyFile parameter is an empty string ("").

Der Assemblyname überschreitet die im System definierte maximale Länge.The assembly name exceeds the system-defined maximum length.

Hinweise

Der assemblyFile -Parameter muss auf einen URI ohne Escapezeichen verweisen.The assemblyFile parameter must refer to a URI without escape characters. Diese Methode liefert Escapezeichen für alle ungültigen Zeichen im URI.This method supplies escape characters for all invalid characters in the URI.

Hinweis

FTP (File Transfer Protocol) wird nicht unterstützt.File transfer protocol (FTP) is not supported. Wenn der für assemblyFile angegebene URI eine FTP-Adresse ist, wird die Assembly nicht geladen.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. Es werden keine Ausnahmen ausgelöst.No exception is thrown.

assemblyFilekann absolut oder relativ zum aktuellen Verzeichnis sein, und die Assembly wird in die Domäne des Aufrufers geladen.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Assemblys können in einen von drei Kontexten geladen werden oder können ohne Kontext geladen werden:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • Der Load-Kontext enthält Assemblys, die durch die Überprüfung gefunden werden: im GAC, in einem Hostassemblyspeicher, ApplicationBase Wenn PrivateBinPath die Laufzeit gehostet wird, oder in und der Anwendungsdomäne.The load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. Die meisten Überladungen der Methode Load laden Assemblys in diesen Kontext.Most overloads of the Load method load assemblies into this context.

  • Der Load-from-Kontext enthält Assemblys, für die der Benutzer einen Pfad bereitgestellt hat, der nicht in den von der Suche gesuchten Verzeichnissen enthalten ist.The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    Beginnend mit .NET Framework 4, wenn der URI von assemblyFile einen Remote Speicherort angibt, ist das Laden von Assemblys Standard LoadFrom mäßig deaktiviert, FileLoadExceptionund die-Methode löst eine aus.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Sie können das-Konfigurationselement verwenden, um die <loadFromRemoteSources> Ausführung von Code zu ermöglichen, der von Remote Standorten geladen wurde.To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • Der reflektionsgeschützte Kontext enthält Assemblys ReflectionOnlyLoad , ReflectionOnlyLoadFrom die mit der-Methode und der-Methode geladen wurden. Code in diesen Kontexten kann nichtThe reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Wenn der Benutzer die Assembly generiert oder gefunden hat, befindet er sich nicht in einem beliebigen Kontext.If the user generated or found the assembly, it is not in any context. Dies gilt für Assemblys, die mithilfe von Load über Ladungen der-Methode geladen werden, die ein Bytearray angeben, das eine Assembly enthält, sowie für vorübergehende dynamische Assemblys, die mit der Reflektionsausgabe erstelltThis applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

Der Load-from-Kontext ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in der Überprüfung enthalten ist, und ermöglicht es, Abhängigkeiten auf diesem Pfad zu finden und zu laden, da die Pfadinformationen durch den Kontext verwaltet werden.The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

Die LoadFrom -Methode weist die folgenden Nachteile auf.The LoadFrom method has the following disadvantages. Verwenden Sie stattdessen Load.Consider using Load instead.

  • 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.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Wenn eine Assembly mit LoadFromgeladen wird und eine Assembly im Lade Kontext später versucht, dieselbe Assembly nach dem anzeigen Amen zu laden, schlägt der Lade Versuch fehl.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Dies kann auftreten, wenn eine Assembly deserialisiert ist.This can occur when an assembly is deserialized.

  • Wenn eine Assembly mit LoadFromgeladen wird und der Suchpfad eine Assembly mit der gleichen Identität, aber einem anderen Speicherort enthält, kann ein MissingMethodException InvalidCastException, oder ein anderes unerwartetes Verhalten auftreten.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Wenn ein natives Image für assemblyFilevorhanden ist, wird es nicht verwendet.If a native image exists for assemblyFile, it is not used. Die Assembly kann nicht als Domänen neutral geladen werden.The assembly cannot be loaded as domain neutral.

  • In den .NET Framework, Version 1,0 und 1,1, wird die Richtlinie nicht angewendet.In the .NET Framework version 1.0 and 1.1, policy is not applied.

Das Erteilen bestimmter Berechtigungen für eine Assembly beruht auf Beweisen.Whether certain permissions are granted or not granted to an assembly is based on evidence. Die Regeln für die Zusammenführung von Assemblys und Sicherheits beweisen lauten wie folgt:The rules for assembly and security evidence merging are as follows:

  • Wenn Sie eine LoadFrom Methode ohne Evidence Parameter verwenden, wird die Assembly mit den Beweisen geladen, die das Lade Modul bereitstellt.When you use a LoadFrom method with no Evidence parameter, the assembly is loaded with the evidence that the loader supplies.

  • Wenn Sie die LoadFrom-Methode mit einem Evidence-Parameter verwenden, werden einzelne Beweise zusammengeführt.When you use a LoadFrom method with an Evidence parameter, pieces of evidence are merged. Beweis Elemente, die als Argument für die LoadFrom Methode bereitgestellt werden, ersetzen die von dem Lade Modul bereitgestellten Beweise.Pieces of evidence supplied as an argument to the LoadFrom method supersede pieces of evidence supplied by the loader.

  • Wenn Sie diese Methode mehrmals in derselben Assembly, aber mit einem anderen angegebenen Beweis, aufgerufen haben, löst die Common Language Runtime keinen FileLoadException aus, da die Gleichheit und Integrität der verschiedenen Beweis Spezifikationen nicht bestimmt werden kann.If you call this method more than once on the same assembly but with a different evidence specified, the common language runtime does not throw a FileLoadException because the equality and integrity of the different evidence specifications cannot be determined. Der erste Erfolg ist der Beweis, der verwendet wird.The evidence that first succeeds is the evidence that is used.

  • Wenn Sie eine- LoadFrom Methode mit einem Byte[] -Parameter verwenden, um ein Common Object File Format Bild (COFF) zu laden, wird der Beweis zusammengefasst.When you use a LoadFrom method with a Byte[] parameter to load a common object file format (COFF) image, evidence is combined. Zone, Url und Site werden StrongName vonHash der aufrufenden Assembly geerbt, und und werden aus der COFF-Assembly entnommen.Zone, Url and Site are inherited from the calling assembly, and Hash and StrongName are taken from the COFF assembly.

  • Wenn Sie eine LoadFrom Methode mit einem Byte[] -Parameter verwenden Evidence und ein COFF-Bild laden, wird nur der angegebene Beweis verwendet.When you use a LoadFrom method with a Byte[] parameter and Evidence to load a COFF image, only the supplied evidence is used. Der Beweis der aufrufenden Assembly und der Beweis für das COFF-Bild werden ignoriert.Evidence of the calling assembly and evidence of the COFF image is ignored.

Sicherheit

SecurityPermission
So laden Sie eine Assembly mit beweisento load an assembly with evidence. Zugehörige Enumeration:ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
zum Lesen eines URIs, der mit "file://" beginnt.for reading a URI that begins with "file://". Zugehörige Enumeration:ReadAssociated enumeration: Read

WebPermission
zum Lesen eines URIs, der nicht mit "file://" beginnt.for reading a URI that does not begin with "file://".

Siehe auch

Gilt für: