Memunggah Perhimpunan Dimuatkan dengan Perhimpunan.LoadFrom()
Untuk menyemak masa yang diperlukan untuk menjalankan GetTypes() selepas memuatkan DLL dengan Assembly.LoadFrom(), seseorang mungkin perlu memunggah dan memuat semula DLL. Walau bagaimanapun, menetapkan rujukan Perhimpunan kepada null tidak mencukupi untuk memunggah pemasangan.
Memunggah Perhimpunan Secara Eksplisit
Untuk memunggah pemasangan secara eksplisit, anda boleh menggunakan AppDomain.Unload () kaedah. Berikut ialah contoh:
// Create a separate AppDomain to load the assembly AppDomain dom = AppDomain.CreateDomain("some"); // Load the assembly into the new AppDomain Assembly assembly = dom.LoadFrom(filePath); // Get the types from the assembly Type[] types = assembly.GetTypes(); // Unload the AppDomain, which will unload the assembly AppDomain.Unload(dom);
Dengan memunggah AppDomain, pemasangan dan semua sumbernya akan dituntut semula oleh pemungut sampah.
Menggunakan Pengumpul Sampah
Semasa menetapkan rujukan Perhimpunan kepada null tidak memunggah pemasangan secara eksplisit, ia menjadikannya layak untuk kutipan sampah. Pengumpul sampah akhirnya akan menuntut semula sumber yang diperuntukkan kepada objek Perhimpunan dan fail pemasangan akan dipunggah daripada ingatan.
Walau bagaimanapun, tiada cara untuk memanggil pemungut sampah secara eksplisit atau memaksanya dijalankan serta-merta. Ia adalah proses latar belakang yang berjalan apabila sistem mempunyai masa terbiar. Oleh itu, adalah disyorkan untuk menggunakan AppDomain.Unload() jika anda ingin memunggah pemasangan secara eksplisit.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memunggah Perhimpunan yang Dimuat Secara Eksplisit dengan Assembly.LoadFrom()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!