Dalam .Net, saya ingin menghitung semua rakitan yang dimuat di semua AppDomains. Melakukannya untuk AppDomain program saya cukup mudah AppDomain.CurrentDomain.GetAssemblies()
. Apakah saya perlu mengakses setiap AppDomain? Atau apakah sudah ada alat yang melakukan ini?
c#
.net
assemblies
Abtin Forouzandeh
sumber
sumber
GetAssemblies()
tidak akan berhasil, karena tidak rekursif dan itu akan kehilangan referensi perakitan bersarang. Saya telah menambahkan versi rekursifGetAssemblies()
di stackoverflow.com/questions/383686/… .AppDomain.CurrentDomain.GetAssemblies()
baik-baik saja. Itu tidak perlu menjalankan referensi secara rekursif, karena itu tidak menghitung referensi di tempat pertama.Jawaban:
Menggunakan Visual Studio
Ini memberikan detail tentang setiap assembly, domain aplikasi dan memiliki beberapa opsi untuk memuat simbol (mis. File pdb yang berisi informasi debug).
Menggunakan Process Explorer
Jika Anda menginginkan alat eksternal, Anda dapat menggunakan Process Explorer (freeware, diterbitkan oleh Microsoft)
Klik pada proses dan itu akan menampilkan daftar dengan semua majelis yang digunakan. Alat ini cukup bagus karena menampilkan informasi lain seperti pegangan file dll.
Secara terprogram
Periksa pertanyaan SO ini yang menjelaskan bagaimana melakukannya.
sumber
Inilah yang akhirnya saya dapatkan. Ini adalah daftar semua properti dan metode, dan saya mencantumkan semua parameter untuk setiap metode. Saya tidak berhasil mendapatkan semua nilai.
sumber
foreach(Type type in asm.GetTypes()){ if ((type.ToString().IndexOf("ACLASSIMLOOKINGFOR")>=0) || (type.ToString().IndexOf("BCLASSIMLOOKINGFOR")>=0)){...