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
Dimulai dengan .NET Framework 4, kemampuan untuk menjalankan kode dalam rakitan yang dimuat dari lokasi jarak jauh dinonaktifkan secara default, dan panggilan ke LoadFrom
metode melempar FileLoadException. Untuk memuat rakitan dan menjalankan kodenya, Anda harus:
Buat kotak pasir secara eksplisit untuk perakitan. (Lihat Cara: Menjalankan Kode Tepercaya Sebagian di Sandbox.)
Jalankan kode assembly dengan kepercayaan penuh dengan mengatur
enabled
atribut<loadFromRemoteSources>
elemen konfigurasi ketrue
. Untuk informasi selengkapnya, lihat<loadFromRemoteSources>
artikel elemen konfigurasi .
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-
Kemampuan untuk menjalankan kode dalam rakitan jarak jauh dinonaktifkan. Lihat <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.
Dimulai dengan .NET Framework 4, jika URI
assemblyFile
menentukan lokasi jarak jauh, pemuatan rakitan dinonaktifkan secara default, danLoadFrom
metode melemparkan FileLoadException. Untuk mengaktifkan eksekusi kode yang dimuat dari lokasi jarak jauh, Anda dapat menggunakan<loadFromRemoteSources>
elemen konfigurasi.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 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);
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
assemblyFile
adalah null
.
assemblyFile
tidak ditemukan, atau modul yang Anda coba muat tidak menentukan ekstensi nama file.
File yang ditemukan tidak dapat dimuat.
-atau-
Kemampuan untuk menjalankan kode dalam rakitan jarak jauh dinonaktifkan. Lihat <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 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.
Dimulai dengan .NET Framework 4, jika URI
assemblyFile
menentukan lokasi jarak jauh, pemuatan rakitan dinonaktifkan secara default, danLoadFrom
metode melemparkan FileLoadException. Untuk mengaktifkan eksekusi kode yang dimuat dari lokasi jarak jauh, Anda dapat menggunakan<loadFromRemoteSources>
elemen konfigurasi.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 assembly dengan identitas yang sama sudah dimuat, LoadFrom mengembalikan assembly yang dimuat bahkan jika jalur yang berbeda ditentukan.
Jika assembly dimuat dengan LoadFrom, dan kemudian assembly dalam konteks beban mencoba memuat assembly yang sama dengan nama tampilan, upaya pemuatan gagal. Hal ini dapat terjadi ketika rakitan dideserialisasi.
Jika rakitan dimuat dengan LoadFrom, dan jalur pemeriksaan mencakup perakitan dengan identitas yang sama tetapi lokasi yang berbeda, InvalidCastExceptionMissingMethodExceptionperilaku tak 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.
Perakitan dimuat dengan bukti yang disediakan loader.
Berlaku untuk
LoadFrom(String)
- 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);
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 perakitan.
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-
Kemampuan untuk mengeksekusi kode dalam rakitan jarak jauh dinonaktifkan. Lihat <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 rakitan yang diberi 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 memasok 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, perakitan tidak dimuat. Tidak terkecuali yang dilemparkan.
assemblyFile
mungkin 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.
Dimulai dengan .NET Framework 4, jika URI
assemblyFile
menentukan lokasi jarak jauh, pemuatan rakitan dinonaktifkan secara default, danLoadFrom
metode melempar FileLoadException. Untuk mengaktifkan eksekusi kode yang dimuat dari lokasi jarak jauh, Anda dapat menggunakan<loadFromRemoteSources>
elemen konfigurasi.Konteks hanya 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 dalam konteks load-from, LoadFrom mengembalikan rakitan yang dimuat meskipun jalur yang berbeda telah ditentukan.
Assembly dapat dimuat dalam konteks load-from meskipun assembly 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 assembly 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 assembly dimuat dalam konteks load-from, dan kemudian assembly dalam konteks beban mencoba memuat assembly 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 perakitan.
- 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-
Kemampuan untuk mengeksekusi kode dalam rakitan jarak jauh dinonaktifkan. Lihat <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 memasok 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, perakitan 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.
Dimulai dengan .NET Framework 4, jika URI
assemblyFile
menentukan lokasi jarak jauh, pemuatan rakitan dinonaktifkan secara default, danLoadFrom
metode melempar FileLoadException. Untuk mengaktifkan eksekusi kode yang dimuat dari lokasi jarak jauh, Anda dapat menggunakan<loadFromRemoteSources>
elemen konfigurasi.Konteks hanya 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 assembly dengan identitas yang sama sudah dimuat, LoadFrom mengembalikan assembly yang dimuat bahkan jika jalur yang berbeda ditentukan.
Jika assembly dimuat dengan LoadFrom, dan kemudian assembly dalam konteks beban mencoba memuat assembly yang sama dengan nama tampilan, upaya pemuatan gagal. Hal ini dapat terjadi ketika rakitan dideserialisasi.
Jika rakitan dimuat dengan LoadFrom, dan jalur pemeriksaan mencakup perakitan dengan identitas yang sama tetapi lokasi yang berbeda, InvalidCastExceptionMissingMethodExceptionperilaku tak 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, 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 perakitan 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
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.
Lihat juga
Berlaku untuk
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk