AppDomain: Pemuatan Perhimpunan Rekursif dan Pengurusan Kebergantungan
Memuatkan himpunan dan kebergantungannya ke dalam AppDomain baharu boleh menjadi rumit. Bagi pemula, FileNotFoundException
biasa sering timbul daripada kebergantungan yang hilang.
Memahami Masalah
Perkara penting yang perlu diingat ialah apabila anda memuatkan himpunan ke dalam AppDomain, himpunan rujukannya tidak dimuatkan secara automatik. Ini memerlukan pemuatan rekursif untuk memastikan semua kebergantungan tersedia. Kegagalan berbuat demikian mengakibatkan ralat seperti:
"Tidak dapat memuatkan fail atau pemasangan 'MyDll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' atau salah satu kebergantungannya. Sistem tidak dapat mencari fail yang ditentukan."
Ralat ini jelas menunjukkan keperluan untuk memuatkan kebergantungan rekursif.
Mengatasi Ketergantungan Secara Manual
Percubaan biasa melibatkan lelaran melalui rujukan pemasangan akar dan memuatkannya secara individu. Walau bagaimanapun, ini selalunya membawa kepada ralat FileNotFoundException
berulang untuk kebergantungan perhimpunan yang dirujuk itu sendiri.
Langkah Penting: CreateInstanceAndUnwrap
Penyelesaian terletak pada penggunaan CreateInstanceAndUnwrap
sebelum objek proksi dilaksanakan dalam AppDomain sasaran. Ini memastikan proksi berjalan dengan betul dalam AppDomain yang ditetapkan.
LoadFile
lwn. LoadFrom
Menggunakan LoadFrom
boleh membawa kepada masalah kerana ia mencari GAC atau folder tong aplikasi. Untuk mengelakkan ini, gunakan LoadFile
. Ingat, anda masih bertanggungjawab untuk memuatkan tanggungan secara rekursif sendiri.
Ringkasan
Berjaya memuatkan himpunan dan kebergantungannya ke dalam AppDomain memerlukan pemuatan kebergantungan rekursif yang berhati-hati. Menggunakan CreateInstanceAndUnwrap
dan memilih LoadFile
melebihi LoadFrom
akan membantu anda mengurus perhimpunan yang dirujuk dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Memuatkan Perhimpunan dan Ketergantungannya secara Rekursif ke dalam AppDomain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!