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 .
AssemblyNesnenin referansına sahip olduğunuzda, assembly.GetTypes()Jon'un daha önce gösterdiği gibi kullanabilirsiniz .
typeofbenim örneğimde olduğu gibi, o montajda olduğunu bildiğiniz bir türle ve ardından Assemblymülkle kullanmaktır.