Bagikan melalui


Assembly.LoadFrom Metode

Definisi

Memuat rakitan.

Overload

Nama Deskripsi
LoadFrom(String, Byte[], AssemblyHashAlgorithm)
Kedaluwarsa.

Memuat rakitan yang diberikan nama file atau jalurnya, nilai hash, dan algoritma hash.

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

Memuat assembly yang diberi nama file atau jalurnya, bukti keamanan, nilai hash, dan algoritma hash.

LoadFrom(String)

Memuat rakitan yang diberikan nama atau jalur filenya.

LoadFrom(String, Evidence)
Kedaluwarsa.

Memuat assembly yang diberi nama file atau jalurnya dan memberikan bukti keamanan.

Keterangan

.NET Framework saja: Lihat <loadFromRemoteSources> untuk memuat rakitan dari lokasi jarak jauh.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Sumber:
Assembly.cs
Sumber:
Assembly.cs
Sumber:
Assembly.cs
Sumber:
Assembly.cs
Sumber:
Assembly.cs

Perhatian

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

Memuat rakitan yang diberikan nama file atau jalurnya, nilai hash, dan algoritma hash.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
[System.Obsolete("LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.", DiagnosticId="SYSLIB0056", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
[<System.Obsolete("LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.", DiagnosticId="SYSLIB0056", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

Parameter

assemblyFile
String

Nama atau jalur file yang berisi manifes perakitan.

hashValue
Byte[]

Nilai kode hash yang dihitung.

hashAlgorithm
AssemblyHashAlgorithm

Algoritma hash yang digunakan untuk hash file dan untuk menghasilkan nama yang kuat.

Mengembalikan

Rakitan yang dimuat.

Atribut

Pengecualian

.NET Core dan .NET 5+ saja: Dalam semua kasus.

assemblyFile adalah null.

assemblyFile tidak ditemukan, atau modul yang Anda coba muat tidak menentukan ekstensi nama file.

File yang ditemukan tidak dapat dimuat.

-atau-

assemblyFile menentukan lokasi yang dinonaktifkan berdasarkan <loadFromRemoteSources>.

assemblyFile bukan rakitan yang valid untuk runtime yang saat ini dimuat; misalnya, rakitan 32-bit dalam proses 64-bit.

Basis kode yang tidak dimulai dengan "file://" ditentukan tanpa diperlukan WebPermission.

Parameter assemblyFile adalah string kosong ("").

Nama rakitan melebihi panjang maksimum yang ditentukan sistem.

Keterangan

API ini tidak didukung di .NET Core/.NET 5+. Metode ini dilemparkan NotSupportedException ketika dipanggil. Gunakan LoadFrom(String) sebagai gantinya.

Parameter assemblyFile harus merujuk ke URI tanpa karakter escape. Metode ini menyediakan karakter escape untuk semua karakter yang tidak valid dalam URI.

Nota

Protokol transfer file (FTP) tidak didukung. Jika URI yang disediakan untuk assemblyFile adalah alamat FTP, rakitan tidak dimuat. Tidak ada pengecualian yang dilemparkan.

assemblyFile dapat absolut atau relatif terhadap direktori saat ini.

Rakitan dapat dimuat ke dalam salah satu dari tiga konteks, atau dapat dimuat tanpa konteks:

  • Konteks beban berisi rakitan yang ditemukan dengan menyelidiki: di cache perakitan global, di penyimpanan rakitan host jika runtime dihosting, atau di ApplicationBase domain aplikasi dan PrivateBinPath . Sebagian besar overload metode Load memuat assembly ke dalam konteks ini.

  • Konteks load-from berisi rakitan tempat pengguna menyediakan jalur yang tidak disertakan dalam pemeriksaan. LoadFrom, CreateInstanceFrom, dan ExecuteAssembly adalah contoh metode yang dimuat menurut jalur.

    Lihat <loadFromRemoteSources> untuk memuat rakitan dari lokasi jarak jauh.

  • Konteks khusus refleksi berisi rakitan yang dimuat dengan ReflectionOnlyLoad metode dan ReflectionOnlyLoadFrom ; kode dalam konteks ini tidak dapat dijalankan.

  • Jika pengguna membuat atau menemukan assembly, itu tidak dalam konteks apa pun. Ini berlaku untuk rakitan yang dimuat menggunakan kelebihan beban Load metode yang menentukan array byte yang berisi rakitan, dan untuk rakitan dinamis sementara yang dibuat dengan pancaran pantulan dan tidak disimpan ke disk.

Konteks load-from memungkinkan rakitan dimuat dari jalur yang tidak disertakan dalam pemeriksaan, namun memungkinkan dependensi pada jalur tersebut ditemukan dan dimuat karena informasi jalur dipertahankan oleh konteks.

Metode LoadFrom ini memiliki kerugian berikut. Pertimbangkan untuk menggunakan Load sebagai gantinya.

  • Jika rakitan dengan identitas yang sama sudah dimuat, LoadFrom mengembalikan rakitan yang dimuat bahkan jika jalur yang berbeda ditentukan.

  • Jika rakitan dimuat dengan LoadFrom, dan kemudian rakitan dalam konteks beban mencoba memuat rakitan yang sama dengan nama tampilan, upaya pemuatan gagal. Ini dapat terjadi ketika rakitan dideserialisasi.

  • Jika rakitan dimuat dengan LoadFrom, dan jalur pemeriksaan menyertakan perakitan dengan identitas yang sama tetapi lokasi yang berbeda, InvalidCastExceptionMissingMethodExceptionperilaku tak terduga lainnya dapat terjadi.

  • LoadFrom permintaan FileIOPermissionAccess.Read dan FileIOPermissionAccess.PathDiscovery, atau WebPermission, pada jalur yang ditentukan.

  • Jika ada gambar asli untuk assemblyFile, gambar tersebut tidak digunakan. Rakitan tidak dapat dimuat sebagai domain netral.

Rakitan dimuat dengan bukti yang disediakan loader.

Berlaku untuk

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

Perhatian

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.

Memuat assembly yang diberi nama file atau jalurnya, bukti keamanan, nilai hash, dan algoritma hash.

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

Nama atau jalur file yang berisi manifes perakitan.

securityEvidence
Evidence

Bukti untuk memuat rakitan.

hashValue
Byte[]

Nilai kode hash yang dihitung.

hashAlgorithm
AssemblyHashAlgorithm

Algoritma hash yang digunakan untuk hash file dan untuk menghasilkan nama yang kuat.

Mengembalikan

Rakitan yang dimuat.

Atribut

Pengecualian

assemblyFile adalah null.

assemblyFile tidak ditemukan, atau modul yang Anda coba muat tidak menentukan ekstensi nama file.

File yang ditemukan tidak dapat dimuat.

-atau-

securityEvidence tidak ambigu dan ditentukan tidak valid.

-atau-

assemblyFile menentukan lokasi yang dinonaktifkan berdasarkan <loadFromRemoteSources>.

assemblyFile bukan rakitan yang valid untuk runtime yang saat ini dimuat; misalnya, rakitan 32-bit dalam proses 64-bit.

Basis kode yang tidak dimulai dengan "file://" ditentukan tanpa diperlukan WebPermission.

Parameter assemblyFile adalah string kosong ("").

Nama rakitan melebihi panjang maksimum yang ditentukan sistem.

Keterangan

Parameter assemblyFile harus merujuk ke URI tanpa karakter escape. Metode ini menyediakan karakter escape untuk semua karakter yang tidak valid dalam URI.

Nota

Protokol transfer file (FTP) tidak didukung. Jika URI yang disediakan untuk assemblyFile adalah alamat FTP, rakitan tidak dimuat. Tidak ada pengecualian yang dilemparkan.

assemblyFile dapat absolut atau relatif terhadap direktori saat ini.

Rakitan dapat dimuat ke dalam salah satu dari tiga konteks, atau dapat dimuat tanpa konteks:

  • Konteks beban berisi rakitan yang ditemukan dengan menyelidiki: di GAC, di penyimpanan rakitan host jika runtime dihosting, atau di ApplicationBase dan PrivateBinPath domain aplikasi. Sebagian besar overload metode Load memuat assembly ke dalam konteks ini.

  • Konteks load-from berisi rakitan tempat pengguna menyediakan jalur yang tidak disertakan dalam direktori yang dicari dengan menyelidiki. LoadFrom, CreateInstanceFrom, dan ExecuteAssembly adalah contoh metode yang dimuat menurut jalur.

    Lihat <loadFromRemoteSources> untuk memuat rakitan dari lokasi jarak jauh.

  • Konteks khusus refleksi berisi rakitan yang dimuat dengan ReflectionOnlyLoad metode dan ReflectionOnlyLoadFrom ; kode dalam konteks ini tidak dapat dijalankan.

  • Jika pengguna membuat atau menemukan assembly, itu tidak dalam konteks apa pun. Ini berlaku untuk rakitan yang dimuat menggunakan kelebihan beban Load metode yang menentukan array byte yang berisi rakitan, dan untuk rakitan dinamis sementara yang dibuat dengan pancaran pantulan dan tidak disimpan ke disk.

Konteks load-from memungkinkan rakitan dimuat dari jalur yang tidak disertakan dalam pemeriksaan, namun memungkinkan dependensi pada jalur tersebut ditemukan dan dimuat karena informasi jalur dipertahankan oleh konteks.

Metode LoadFrom ini memiliki kerugian berikut. Pertimbangkan untuk menggunakan Load sebagai gantinya.

  • Jika rakitan dengan identitas yang sama sudah dimuat, LoadFrom mengembalikan rakitan yang dimuat bahkan jika jalur yang berbeda ditentukan.

  • Jika rakitan dimuat dengan LoadFrom, dan kemudian rakitan dalam konteks beban mencoba memuat rakitan yang sama dengan nama tampilan, upaya pemuatan gagal. Ini dapat terjadi ketika rakitan dideserialisasi.

  • Jika rakitan dimuat dengan LoadFrom, dan jalur pemeriksaan menyertakan perakitan dengan identitas yang sama tetapi lokasi yang berbeda, InvalidCastExceptionMissingMethodExceptionperilaku tak terduga lainnya dapat terjadi.

  • LoadFrom permintaan FileIOPermissionAccess.Read dan FileIOPermissionAccess.PathDiscovery, atau WebPermission, pada jalur yang ditentukan.

  • Jika ada gambar asli untuk assemblyFile, gambar tersebut tidak digunakan. Rakitan tidak dapat dimuat sebagai domain netral.

Apakah izin tertentu diberikan atau tidak diberikan kepada rakitan didasarkan pada bukti. Aturan untuk perakitan dan penggabungan bukti keamanan adalah sebagai berikut:

  • Ketika Anda menggunakan LoadFrom metode tanpa Evidence parameter, assembly dimuat dengan bukti yang disediakan loader.

  • Saat Anda menggunakan LoadFrom metode dengan Evidence parameter, potongan bukti digabungkan. Potongan bukti yang disediakan sebagai argumen untuk LoadFrom metode menggantikan potongan bukti yang disediakan oleh loader.

  • Jika Anda memanggil metode ini lebih dari sekali pada rakitan yang sama tetapi dengan bukti yang berbeda yang ditentukan, runtime bahasa umum tidak melempar FileLoadException karena kesetaraan dan integritas spesifikasi bukti yang berbeda tidak dapat ditentukan. Bukti yang pertama berhasil adalah bukti yang digunakan.

  • Saat Anda menggunakan LoadFrom metode dengan Byte[] parameter untuk memuat gambar format file objek umum (COFF), bukti digabungkan. Zone, Url dan Site diwariskan dari perakitan panggilan, dan Hash dan StrongName diambil dari perakitan COFF.

  • Saat Anda menggunakan LoadFrom metode dengan Byte[] parameter dan Evidence untuk memuat gambar COFF, hanya bukti yang disediakan yang digunakan. Bukti perakitan panggilan dan bukti gambar COFF diabaikan.

Berlaku untuk

LoadFrom(String)

Sumber:
Assembly.cs
Sumber:
Assembly.cs
Sumber:
Assembly.cs
Sumber:
Assembly.cs
Sumber:
Assembly.cs

Memuat rakitan yang diberikan nama atau jalur filenya.

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

Parameter

assemblyFile
String

Nama atau jalur file yang berisi manifes perakitan.

Mengembalikan

Rakitan yang dimuat.

Atribut

Pengecualian

assemblyFile adalah null.

assemblyFile tidak ditemukan, atau modul yang Anda coba muat tidak menentukan ekstensi nama file.

File yang ditemukan tidak dapat dimuat.

-atau-

.NET Framework saja: assemblyFile menentukan lokasi yang dinonaktifkan berdasarkan <loadFromRemoteSources>.

assemblyFile bukan rakitan yang valid untuk runtime yang saat ini dimuat; misalnya, rakitan 32-bit dalam proses 64-bit.

Basis kode yang tidak dimulai dengan "file://" ditentukan tanpa diperlukan WebPermission.

Parameter assemblyFile adalah string kosong ("").

Nama rakitan melebihi panjang maksimum yang ditentukan sistem.

Contoh

Contoh berikut memuat assembly yang diberi nama file atau jalurnya.

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

Keterangan

API ini ada di .NET Core untuk kompatibilitas, tetapi disarankan untuk menggunakan AssemblyLoadContext kelebihan beban sebagai gantinya.

Rakitan dimuat ke dalam AssemblyLoadContext default. Untuk informasi selengkapnya tentang pemuatan perakitan, lihat Algoritma pemuatan rakitan terkelola.

Parameter assemblyFile harus merujuk ke URI tanpa karakter escape. Metode ini menyediakan karakter escape untuk semua karakter yang tidak valid dalam URI.

Nota

.NET Framework saja: Protokol transfer file (FTP) tidak didukung. Jika URI yang disediakan untuk assemblyFile adalah alamat FTP, rakitan tidak dimuat. Tidak ada pengecualian yang dilemparkan.

assemblyFile mungkin absolut atau relatif terhadap direktori saat ini.

.NET Framework saja: Rakitan dapat dimuat ke dalam salah satu dari tiga konteks, atau dapat dimuat tanpa konteks:

  • Konteks beban berisi rakitan yang ditemukan dengan menyelidiki: di GAC, di penyimpanan rakitan host jika runtime dihosting, atau di ApplicationBase dan PrivateBinPath domain aplikasi. Sebagian besar overload metode Load memuat assembly ke dalam konteks ini.

  • Konteks load-from berisi rakitan tempat pengguna menyediakan jalur yang tidak disertakan dalam direktori yang dicari dengan menyelidiki. Ini juga memungkinkan dependensi pada jalur tersebut ditemukan dan dimuat karena informasi jalur dipertahankan oleh konteks. LoadFrom, CreateInstanceFrom, dan ExecuteAssembly adalah contoh metode yang dimuat menurut jalur.

    Lihat <loadFromRemoteSources> untuk memuat rakitan dari lokasi jarak jauh.

  • Konteks khusus refleksi berisi rakitan yang dimuat dengan ReflectionOnlyLoad metode dan ReflectionOnlyLoadFrom ; kode dalam konteks ini tidak dapat dijalankan.

  • Jika pengguna membuat atau menemukan assembly, itu tidak dalam konteks apa pun. Ini berlaku untuk rakitan yang dimuat menggunakan kelebihan beban Load metode yang menentukan array byte yang berisi rakitan, dan untuk rakitan dinamis sementara yang dibuat dengan pancaran pantulan dan tidak disimpan ke disk.

Metode LoadFrom ini memiliki kerugian berikut. Pertimbangkan untuk menggunakan Load sebagai gantinya.

  • Jika rakitan dengan identitas yang sama sudah dimuat dalam konteks load-from, LoadFrom mengembalikan rakitan yang dimuat bahkan jika jalur yang berbeda ditentukan.

  • Rakitan dapat dimuat dalam konteks load-from meskipun rakitan dengan identitas yang sama ada dalam konteks beban. Interoperabilitas antara kedua rakitan tidak akan berfungsi, yang mengarah ke kesalahan seperti InvalidCastException, MissingMethodException, atau perilaku tak terduga lainnya.

  • Memanggil LoadFrom dengan lokasi yang berada di jalur pemeriksaan akan memuat perakitan dalam konteks beban dan bukan dalam konteks load-from.

  • Jika file assembly yang identitasnya di-goveren oleh kebijakan pengalihan pengikatan diteruskan ke LoadFrom, kebijakan akan diterapkan dan assembly akan dimuat dari jalur pemeriksaan dalam konteks beban.

  • Jika rakitan dimuat dalam konteks load-from, dan kemudian assembly dalam konteks beban mencoba memuat rakitan yang sama dengan nama tampilan, upaya pemuatan gagal. Ini dapat terjadi ketika rakitan dideserialisasi.

  • LoadFrom permintaan FileIOPermissionAccess.Read dan FileIOPermissionAccess.PathDiscovery, atau WebPermission, pada jalur yang ditentukan.

  • Jika ada gambar asli untuk assemblyFile, gambar tersebut tidak digunakan. Rakitan tidak dapat dimuat sebagai domain netral.

Berlaku untuk

LoadFrom(String, Evidence)

Perhatian

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.

Memuat assembly yang diberi nama file atau jalurnya dan memberikan bukti keamanan.

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

Nama atau jalur file yang berisi manifes perakitan.

securityEvidence
Evidence

Bukti untuk memuat rakitan.

Mengembalikan

Rakitan yang dimuat.

Atribut

Pengecualian

assemblyFile adalah null.

assemblyFile tidak ditemukan, atau modul yang Anda coba muat tidak menentukan ekstensi nama file.

File yang ditemukan tidak dapat dimuat.

-atau-

securityEvidence tidak ambigu dan ditentukan tidak valid.

-atau-

assemblyFile menentukan lokasi yang dinonaktifkan berdasarkan <loadFromRemoteSources>.

assemblyFile bukan rakitan yang valid untuk runtime yang saat ini dimuat; misalnya, rakitan 32-bit dalam proses 64-bit.

Basis kode yang tidak dimulai dengan "file://" ditentukan tanpa diperlukan WebPermission.

Parameter assemblyFile adalah string kosong ("").

Nama rakitan melebihi panjang maksimum yang ditentukan sistem.

Keterangan

Parameter assemblyFile harus merujuk ke URI tanpa karakter escape. Metode ini menyediakan karakter escape untuk semua karakter yang tidak valid dalam URI.

Nota

Protokol transfer file (FTP) tidak didukung. Jika URI yang disediakan untuk assemblyFile adalah alamat FTP, rakitan tidak dimuat. Tidak ada pengecualian yang dilemparkan.

assemblyFile dapat absolut atau relatif terhadap direktori saat ini.

Rakitan dapat dimuat ke dalam salah satu dari tiga konteks, atau dapat dimuat tanpa konteks:

  • Konteks beban berisi rakitan yang ditemukan dengan menyelidiki: di GAC, di penyimpanan rakitan host jika runtime dihosting, atau di ApplicationBase dan PrivateBinPath domain aplikasi. Sebagian besar overload metode Load memuat assembly ke dalam konteks ini.

  • Konteks load-from berisi rakitan tempat pengguna menyediakan jalur yang tidak disertakan dalam direktori yang dicari dengan menyelidiki. LoadFrom, CreateInstanceFrom, dan ExecuteAssembly adalah contoh metode yang dimuat menurut jalur.

    Lihat <loadFromRemoteSources> untuk memuat rakitan dari lokasi jarak jauh.

  • Konteks khusus refleksi berisi rakitan yang dimuat dengan ReflectionOnlyLoad metode dan ReflectionOnlyLoadFrom ; kode dalam konteks ini tidak dapat dijalankan.

  • Jika pengguna membuat atau menemukan assembly, itu tidak dalam konteks apa pun. Ini berlaku untuk rakitan yang dimuat menggunakan kelebihan beban Load metode yang menentukan array byte yang berisi rakitan, dan untuk rakitan dinamis sementara yang dibuat dengan pancaran pantulan dan tidak disimpan ke disk.

Konteks load-from memungkinkan rakitan dimuat dari jalur yang tidak disertakan dalam pemeriksaan, namun memungkinkan dependensi pada jalur tersebut ditemukan dan dimuat karena informasi jalur dipertahankan oleh konteks.

Metode LoadFrom ini memiliki kerugian berikut. Pertimbangkan untuk menggunakan Load sebagai gantinya.

  • Jika rakitan dengan identitas yang sama sudah dimuat, LoadFrom mengembalikan rakitan yang dimuat bahkan jika jalur yang berbeda ditentukan.

  • Jika rakitan dimuat dengan LoadFrom, dan kemudian rakitan dalam konteks beban mencoba memuat rakitan yang sama dengan nama tampilan, upaya pemuatan gagal. Ini dapat terjadi ketika rakitan dideserialisasi.

  • Jika rakitan dimuat dengan LoadFrom, dan jalur pemeriksaan menyertakan perakitan dengan identitas yang sama tetapi lokasi yang berbeda, InvalidCastExceptionMissingMethodExceptionperilaku tak terduga lainnya dapat terjadi.

  • LoadFrom permintaan FileIOPermissionAccess.Read dan FileIOPermissionAccess.PathDiscovery, atau WebPermission, pada jalur yang ditentukan.

  • Jika ada gambar asli untuk assemblyFile, gambar tersebut tidak digunakan. Rakitan tidak dapat dimuat sebagai domain netral.

Apakah izin tertentu diberikan atau tidak diberikan kepada rakitan didasarkan pada bukti. Aturan untuk perakitan dan penggabungan bukti keamanan adalah sebagai berikut:

  • Ketika Anda menggunakan LoadFrom metode tanpa Evidence parameter, assembly dimuat dengan bukti yang disediakan loader.

  • Saat Anda menggunakan LoadFrom metode dengan Evidence parameter, potongan bukti digabungkan. Potongan bukti yang disediakan sebagai argumen untuk LoadFrom metode menggantikan potongan bukti yang disediakan oleh loader.

  • Jika Anda memanggil metode ini lebih dari sekali pada rakitan yang sama tetapi dengan bukti yang berbeda yang ditentukan, runtime bahasa umum tidak melempar FileLoadException karena kesetaraan dan integritas spesifikasi bukti yang berbeda tidak dapat ditentukan. Bukti yang pertama berhasil adalah bukti yang digunakan.

  • Saat Anda menggunakan LoadFrom metode dengan Byte[] parameter untuk memuat gambar format file objek umum (COFF), bukti digabungkan. Zone, Url dan Site diwariskan dari perakitan panggilan, dan Hash dan StrongName diambil dari perakitan COFF.

  • Saat Anda menggunakan LoadFrom metode dengan Byte[] parameter dan Evidence untuk memuat gambar COFF, hanya bukti yang disediakan yang digunakan. Bukti perakitan panggilan dan bukti gambar COFF diabaikan.

Lihat juga

Berlaku untuk