SORU
12 AĞUSTOS 2009, ÇARŞAMBA


Belirli bir Türü C Devralan bir derlemede tüm türlerini bulmak için nasıl#

Nasıl belirli başka bir türünden devralan tüm türleri bir koleksiyon alabilirim?

CEVAP
12 AĞUSTOS 2009, ÇARŞAMBA


Gibi bir şey

public IEnumerable<Type> FindDerivedTypes(Assembly assembly, Type baseType)
{
    return assembly.GetTypes().Where(t => baseType.IsAssignableFrom(t));
}

Eğer jenerik işlemek gerekiyorsa, bu biraz yanıltıcıdır (örneğin açık List<> yazın geçen ama List<int> türetilen bir tür geri almak için bekliyor) alır. Aksi halde basit :)

Eğer türünü kendisi hariç tutmak istiyorsanız, bunu kolayca yapabilirsiniz:

public IEnumerable<Type> FindDerivedTypes(Assembly assembly, Type baseType)
{
    return assembly.GetTypes().Where(t => t != baseType && 
                                          baseType.IsAssignableFrom(t));
}

Bu aynı zamanda bir arabirim belirlemek ve uygulamak olan tüm türlerini bulmak, sadece Type.IsSubclassOf gibi sınıflar ile çalışma yerine izin verir unutmayın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GFX Tutorials

    GFX Tutorial

    12 AĞUSTOS 2013
  • theKGB65

    theKGB65

    24 Aralık 2007
  • wolfys you tube

    wolfys you t

    22 Kasım 2006