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 assembly.
Overload
LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm) |
Kedaluwarsa.
Memuat rakitan yang diberi nama file atau jalurnya, bukti keamanan, nilai hash, dan algoritma hash. |
LoadFrom(String, Byte[], AssemblyHashAlgorithm) |
Memuat rakitan yang diberi nama atau jalur file, nilai hash, dan algoritma hash. |
LoadFrom(String) |
Memuat rakitan yang diberi 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, 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 rakitan 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 rakitan.
- securityEvidence
- Evidence
Bukti untuk memuat assembly.
- hashValue
- Byte[]
Nilai kode hash komputasi.
- hashAlgorithm
- AssemblyHashAlgorithm
Algoritma hash yang digunakan untuk hashing 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.
Catatan
Protokol transfer file (FTP) tidak didukung. Jika URI yang disediakan untuk assemblyFile
adalah alamat FTP, rakitan tidak dimuat. Tidak terkecuali yang dilemparkan.
assemblyFile
dapat bersifat 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 memeriksa: di GAC, di penyimpanan rakitan host jika runtime dihosting, atau di ApplicationBase domain aplikasi dan PrivateBinPath . Sebagian besar kelebihan beban metode Load memuat rakitan ke dalam konteks ini.
Konteks load-from berisi rakitan tempat pengguna menyediakan jalur yang tidak disertakan dalam direktori yang dicari dengan 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 perakitan 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. Hal ini dapat terjadi ketika rakitan dideserialisasi.
Jika rakitan dimuat dengan LoadFrom, dan jalur pemeriksaan menyertakan perakitan dengan identitas yang sama tetapi lokasi yang berbeda, InvalidCastExceptionperilaku MissingMethodExceptiontak terduga lainnya dapat terjadi.
LoadFrom tuntutan 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, perakitan dimuat dengan bukti bahwa loader memasok.
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 melemparkan 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
danSite
diwariskan dari rakitan panggilan, danHash
danStrongName
diambil dari rakitan COFF.Saat Anda menggunakan LoadFrom metode dengan
Byte[]
parameter dan Evidence untuk memuat gambar COFF, hanya bukti yang disediakan yang digunakan. Bukti rakitan pemanggilan dan bukti gambar COFF diabaikan.
Berlaku untuk
LoadFrom(String, Byte[], AssemblyHashAlgorithm)
- Sumber:
- Assembly.cs
- Sumber:
- Assembly.cs
- Sumber:
- Assembly.cs
Memuat rakitan yang diberi nama atau jalur file, nilai hash, dan algoritma hash.
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
Nama atau jalur file yang berisi manifes rakitan.
- hashValue
- Byte[]
Nilai kode hash komputasi.
- hashAlgorithm
- AssemblyHashAlgorithm
Algoritma hash yang digunakan untuk hashing file dan untuk menghasilkan nama yang kuat.
Mengembalikan
Rakitan yang dimuat.
Pengecualian
Hanya .NET Core dan .NET 5+: 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
Di .NET Core dan .NET 5+, metode ini muncul NotSupportedException saat 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.
Catatan
Protokol transfer file (FTP) tidak didukung. Jika URI yang disediakan untuk assemblyFile
adalah alamat FTP, rakitan tidak dimuat. Tidak terkecuali yang dilemparkan.
assemblyFile
dapat bersifat 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 pemeriksaan: di cache rakitan global, di penyimpanan rakitan host jika runtime dihosting, atau di ApplicationBase domain aplikasi dan PrivateBinPath . Sebagian besar kelebihan beban metode Load memuat rakitan 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 perakitan 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. Hal ini dapat terjadi ketika rakitan dideserialisasi.
Jika rakitan dimuat dengan LoadFrom, dan jalur pemeriksaan menyertakan perakitan dengan identitas yang sama tetapi lokasi yang berbeda, InvalidCastExceptionperilaku MissingMethodExceptiontak terduga lainnya dapat terjadi.
LoadFrom tuntutan 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 bahwa loader memasok.
Berlaku untuk
LoadFrom(String)
- Sumber:
- Assembly.cs
- Sumber:
- Assembly.cs
- Sumber:
- Assembly.cs
Memuat rakitan yang diberi nama atau jalur filenya.
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
Nama atau jalur file yang berisi manifes rakitan.
Mengembalikan
Rakitan yang dimuat.
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-
Hanya .NET Framework: 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 dengan nama atau jalur filenya.
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
Keterangan
Parameter assemblyFile
harus merujuk ke URI tanpa karakter escape. Metode ini menyediakan karakter escape untuk semua karakter yang tidak valid dalam URI.
Catatan
Protokol transfer file (FTP) tidak didukung. Jika URI yang disediakan untuk assemblyFile
adalah alamat FTP, rakitan tidak dimuat. Tidak terkecuali 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 memeriksa: di GAC, di penyimpanan rakitan host jika runtime dihosting, atau di ApplicationBase domain aplikasi dan PrivateBinPath . Sebagian besar kelebihan beban metode Load memuat rakitan ke dalam konteks ini.
Konteks load-from berisi rakitan tempat pengguna menyediakan jalur yang tidak disertakan dalam direktori yang dicari dengan pemeriksaan. 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 meskipun jalur yang berbeda telah ditentukan.
Rakitan dapat dimuat dalam konteks load-from meskipun perakitan 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 rakitan dalam konteks beban dan bukan dalam konteks load-from.
Jika file rakitan yang identitasnya dikaitkan dengan kebijakan pengalihan pengikatan diteruskan ke LoadFrom, kebijakan akan diterapkan dan perakitan 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. Hal ini dapat terjadi ketika rakitan dideserialisasi.
LoadFrom tuntutan 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 diberikan 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 rakitan.
- securityEvidence
- Evidence
Bukti untuk memuat assembly.
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.
Catatan
Protokol transfer file (FTP) tidak didukung. Jika URI yang disediakan untuk assemblyFile
adalah alamat FTP, rakitan tidak dimuat. Tidak terkecuali yang dilemparkan.
assemblyFile
dapat bersifat 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 memeriksa: di GAC, di penyimpanan rakitan host jika runtime dihosting, atau di ApplicationBase domain aplikasi dan PrivateBinPath . Sebagian besar kelebihan beban metode Load memuat rakitan ke dalam konteks ini.
Konteks load-from berisi rakitan tempat pengguna menyediakan jalur yang tidak disertakan dalam direktori yang dicari dengan 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 perakitan 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. Hal ini dapat terjadi ketika rakitan dideserialisasi.
Jika rakitan dimuat dengan LoadFrom, dan jalur pemeriksaan menyertakan perakitan dengan identitas yang sama tetapi lokasi yang berbeda, InvalidCastExceptionperilaku MissingMethodExceptiontak terduga lainnya dapat terjadi.
LoadFrom tuntutan 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, perakitan dimuat dengan bukti bahwa loader memasok.
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 melemparkan 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
danSite
diwarisi dari perakitan panggilan, danHash
diambilStrongName
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.