Derlememdeki tüm sınıfların bir listesini (programlı olarak - C #) çıkarmak istiyorum.
Bunun nasıl yapılacağı konusunda herhangi bir ipucu veya örnek kod var mı? Yansıma?
Yanıtlar:
Kullanın Assembly.GetTypes
. Örneğin:
Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
Console.WriteLine(type.FullName);
}
Ben sadece Jon'un örneğini eklemek istiyorum. Kendi montajınıza referans almak için şunları kullanabilirsiniz:
Assembly myAssembly = Assembly.GetExecutingAssembly();
System.Reflection
ad alanı.
Referansınız olmayan bir montajı incelemek istiyorsanız, şunlardan birini kullanabilirsiniz:
Assembly assembly = Assembly.ReflectionOnlyLoad(fullAssemblyName);
Assembly assembly = Assembly.ReflectionOnlyLoadFrom(fileName);
Türünüzü bulduktan sonra somutlaştırmayı düşünüyorsanız:
Assembly assembly = Assembly.Load(fullAssemblyName);
Assembly assembly = Assembly.LoadFrom(fileName);
Daha fazla bilgi için Assembly sınıfı belgelerine bakın .
Assembly
Nesnenin referansına sahip olduğunuzda, assembly.GetTypes()
Jon'un daha önce gösterdiği gibi kullanabilirsiniz .
typeof
benim örneğimde olduğu gibi, o montajda olduğunu bildiğiniz bir türle ve ardından Assembly
mülkle kullanmaktır.