Assembly.LoadFrom Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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,UrldanSitediwariskan dari perakitan panggilan, danHashdanStrongNamediambil 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,UrldanSitediwariskan dari perakitan panggilan, danHashdanStrongNamediambil 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.