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

  • bombjack2991

    bombjack2991

    29 HAZİRAN 2008
  • TastyTuts | Creative video tutorials by Gareth David

    TastyTuts |

    6 Temmuz 2011
  • YEAH1TV

    YEAH1TV

    19 ŞUBAT 2009