Assembly.LoadFrom Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
Nur .NET Framework: Weitere Informationen finden Sie unter <loadFromRemoteSources>
Laden von Assemblys von Remotestandorten.
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 -
assemblyFile
gibt einen Speicherort an, der basierend auf <loadFromRemoteSources> deaktiviert ist.
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
Ftp (File Transfer Protocol) wird nicht unterstützt. Wenn der für assemblyFile
bereitgestellte 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 beim 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 Verzeichnissen enthalten ist, die durch Diesuchvorgänge durchsucht werden. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.
Weitere Informationen finden Sie unter
<loadFromRemoteSources>
Laden von Assemblys von Remotestandorten.Der Nur-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 angeben, das eine Assembly enthält, und für vorübergehende dynamische Assemblys, die mit Reflektionsausgabe erstellt und nicht auf dem Datenträger gespeichert werden.
Der Kontext zum Laden von ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in der Untersuchung 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 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 anhand des Anzeigenamens 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 , MissingMethodExceptionoder ein anderes unerwartetes InvalidCastExceptionVerhalten auftreten kann.
LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.
Wenn ein natives Image für
assemblyFile
vorhanden ist, wird es nicht verwendet. Die Assembly kann nicht 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.Zone
undUrl
Site
werden von der aufrufenden Assembly geerbt, undHash
undStrongName
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.
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
Nur .NET Core und .NET 5 und höher: In allen Fällen.
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 -
assemblyFile
gibt einen Speicherort an, der basierend auf <loadFromRemoteSources> deaktiviert ist.
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
In .NET Core und .NET 5 und höher wird diese Methode 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
Ftp (File Transfer Protocol) wird nicht unterstützt. Wenn der für assemblyFile
bereitgestellte 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 Überprüfen 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 der Untersuchung enthalten ist. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.
Weitere Informationen finden Sie unter
<loadFromRemoteSources>
Laden von Assemblys von Remotestandorten.Der Nur-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 angeben, das eine Assembly enthält, und für vorübergehende dynamische Assemblys, die mit Reflektionsausgabe erstellt und nicht auf dem Datenträger gespeichert werden.
Der Kontext zum Laden aus ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in der Untersuchung 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 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 anhand des Anzeigenamens 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 , MissingMethodExceptionoder ein anderes unerwartetes InvalidCastExceptionVerhalten auftreten kann.
LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.
Wenn ein natives Image für
assemblyFile
vorhanden ist, wird es nicht verwendet. Die Assembly kann nicht als domänenneutral geladen werden.
Die Assembly wird mit dem Beweis geladen, den der Ladeprogramm 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 -
Nur .NET Framework: assemblyFile
Gibt einen Speicherort an, der basierend auf <loadFromRemoteSources> deaktiviert ist.
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
Ftp (File Transfer Protocol) wird nicht unterstützt. Wenn der für assemblyFile
bereitgestellte 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 beim 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 Verzeichnissen enthalten ist, die durch Diesuchvorgänge durchsucht werden. Außerdem können Abhängigkeiten von diesem Pfad gefunden und geladen werden, da die Pfadinformationen vom Kontext verwaltet werden. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.
Weitere Informationen finden Sie unter
<loadFromRemoteSources>
Laden von Assemblys von Remotestandorten.Der Nur-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 angeben, das eine Assembly enthält, und für vorübergehende dynamische Assemblys, die mit Reflektionsausgabe erstellt und nicht auf dem Datenträger gespeichert 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 aus geladen werden, obwohl im Ladekontext eine Assembly mit derselben Identität 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 Suchpfad befindet, wird die Assembly im Ladekontext und nicht im Kontext zum Laden von geladen.
Wenn eine Assemblydatei, deren Identität durch eine Bindungsumleitungsrichtlinie übertragen wird, an LoadFromübergeben wird, wird die Richtlinie angewendet, und die Assembly wird aus dem Überprüfungspfad im Ladekontext geladen.
Wenn eine Assembly im Kontext zum 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
assemblyFile
vorhanden ist, wird es nicht verwendet. Die Assembly kann nicht 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 -
assemblyFile
gibt einen Speicherort an, der basierend auf <loadFromRemoteSources> deaktiviert ist.
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
Ftp (File Transfer Protocol) wird nicht unterstützt. Wenn der für assemblyFile
bereitgestellte 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 beim 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 Verzeichnissen enthalten ist, die durch Diesuchvorgänge durchsucht werden. LoadFrom, CreateInstanceFrom und ExecuteAssembly sind Beispiel für Methoden, die anhand des Pfads laden.
Weitere Informationen finden Sie unter
<loadFromRemoteSources>
Laden von Assemblys von Remotestandorten.Der Nur-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 angeben, das eine Assembly enthält, und für vorübergehende dynamische Assemblys, die mit Reflektionsausgabe erstellt und nicht auf dem Datenträger gespeichert werden.
Der Kontext zum Laden von ermöglicht das Laden einer Assembly aus einem Pfad, der nicht in der Untersuchung 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 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 anhand des Anzeigenamens 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 , MissingMethodExceptionoder ein anderes unerwartetes InvalidCastExceptionVerhalten auftreten kann.
LoadFrom fordert FileIOPermissionAccess.Read und FileIOPermissionAccess.PathDiscovery oder WebPermission im angegebenen Pfad.
Wenn ein natives Image für
assemblyFile
vorhanden ist, wird es nicht verwendet. Die Assembly kann nicht 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.Zone
undUrl
Site
werden von der aufrufenden Assembly geerbt, undHash
undStrongName
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.