Assembly.LoadFrom Metode

Definisi

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:

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

assemblyFileadalah 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, dan LoadFrom 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 dan Site diwariskan dari rakitan panggilan, dan Hash dan StrongName 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

assemblyFileadalah 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, dan LoadFrom 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

assemblyFileadalah 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, dan LoadFrom 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

assemblyFileadalah 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, dan LoadFrom 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 dan Site diwarisi dari perakitan panggilan, dan Hash diambil StrongName 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