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

  • colacas

    colacas

    29 EKİM 2006
  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • JeezyVEVO

    JeezyVEVO

    12 Mayıs 2009