Uygulamanın Referans Listesini Almak

Çalışma zamanında (Run-Time) uygulamanın referans olarak kullandığı assembly‘lerin (dll) listesini almak için aşağıdaki LINQ sorgusunu kullanabilirsiniz;

var assemblies = from assemblyName in Assembly.GetExecutingAssembly().GetReferencedAssemblies() let assembly = Assembly.Load(assemblyName) let companies = assembly.GetCustomAttributes(typeof(AssemblyCompanyAttribute), false) where companies.Length > 0 && (companies[0] as AssemblyCompanyAttribute).Company != “Microsoft Corporation” select assembly;</pre>

Assembly sınıfının static GetExecutingAssembly() method’unu kullanarak çalışan assembly‘ye ulaşabiliriz.

GetReferencedAssemblies() method’u ilgili Assembly‘nin referans olarak kullandığı assembly‘lerin listesini döndürür.

Assembly sınıfının static Load() method’u ile ilgili assembly hafızaya yüklenir.

</a>GetCustomAttributes() method’u ile ilgili assembly‘nin çeşitli meta bilgileri sorgulanabilir. Örneğin;

AssemblyCompanyAttribute bilgisini aldıktan sonra, Microsoft Corporation değerinden farklı olduğunu kontrol ederek, Microsoft firması haricinde firmaların referans assembly‘lerini bulabiliriz.

Son olarak, basit bir foreach döngüsü ile assembly listesini ekrana yazdırabiliriz;

foreach (var assembly in assemblies)
{
    Console.WriteLine(assembly.FullName);
}


İlgili diğer makaleler

blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı