Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memunggah Perhimpunan yang Dimuat Secara Eksplisit dengan Assembly.LoadFrom()?

Bagaimanakah Saya Boleh Memunggah Perhimpunan yang Dimuat Secara Eksplisit dengan Assembly.LoadFrom()?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-04 09:41:35399semak imbas

How Can I Explicitly Unload Assemblies Loaded with Assembly.LoadFrom()?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn