Menggunakan. .NET untuk mendapatkan rakitan yang dimuat tidak lengkap, meskipun kami mengacu ke pustaka lain, tetapi tanpa memanggil, itu tidak dapat diperoleh di rakitan yang dimuat, artikel ini dibagikan untuk mendapatkan rakitan perakitan lengkap di WinForm dan ASP.NET.
Perkenalan
Menggunakan. .NET untuk mendapatkan rakitan yang dimuat tidak lengkap, meskipun kami mengacu ke pustaka lain, tetapi tanpa memanggil, itu tidak dapat diperoleh di rakitan yang dimuat, artikel ini dibagikan untuk mendapatkan rakitan perakitan lengkap di WinForm dan ASP.NET.
ASP.NET (tidak terukur)
.NET Framework menunda pemuatan rakitan ke AppDomain saat ini hingga diperlukan. Misalnya, jika Anda hanya memanggil library pihak ketiga dari SomeMethod(), DLL pihak ketiga biasanya tidak akan dimuat hingga eksekusi pertama SomeMethod().
AppDomain.GetAssemblies() memberi Anda semua rakitan yang telah dimuat ke AppDomain saat ini. BuildManager.GetReferencedAssemblies() mengembalikan daftar semua rakitan yang direferensikan dari Web.config dan lokasi lainnya, dan memuat rakitan tersebut ke AppDomain saat ini.
Kode:
WinForm
Mulailah dengan menggunakan kode di bawah ini untuk mendapatkan rakitan yang dimuat.
Jumlah rakitan Perakitan yang diperoleh adalah 12, seperti yang ditunjukkan pada gambar berikut:
Ketika kita tidak memanggil metode library lain, aplikasi utama tidak memuat dll-nya, mungkin untuk menghemat overhead kinerja, jadi pertama kali kita memanggil metode library lain, mungkin sedikit lebih lambat.
Gunakan kode yang dimodifikasi, sebagai berikut:
Jumlah rakitan perakitan yang diperoleh adalah 117, dan prinsipnya adalah mendapatkan dll di bawah direktori aplikasi dan memuatnya.
Dalam hal ini, saat memanggil AppDomain.CurrentDomain.GetAssemblies(). ToList(), Anda bisa mendapatkan rakitan lengkap, yang mungkin lebih dari 117.
Dapatkan rakitan saat ini
|