Fullname | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar fullname

Uygulamanın Referans Listesini Almak

20 November 2011 Yorum yapılmamış

Ç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;

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.

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);
}