SORU
31 Mart 2009, Salı


Nasıl belirli bir arabirimi uygulayan tüm sınıflar bulmak için?

Verilen bir ad altında, bir arayüzü uygulayan sınıfların bir dizi var. Bakalım ISomething Ara. ISomething haberi olan başka bir sınıf (hadi CClass çağrı) var ama uygulayan arayüz sınıfları hakkında hiçbir şey bilmiyor.

CClass ISomething, örneğini örneği tüm uygulama görünmek ister ve bu yöntemi uygulamak istiyorum.

Herkes C# 3.5 ile bunun nasıl yapılacağı hakkında bir fikri olan var mı?

Teşekkürler!

CEVAP
31 Mart 2009, Salı


Kod-örnek bir çalışma

var instances = from t in Assembly.GetExecutingAssembly().GetTypes()
                where t.GetInterfaces().Contains(typeof(ISomething))
                         && t.GetConstructor(Type.EmptyTypes) != null
                select Activator.CreateInstance(t) as ISomething;

foreach (var instance in instances)
{
    instance.Foo(); // where Foo is a method of ISomething
}

EditCreateınstance çağrısı başarısız olur, böylece katma parametresiz bir kurucu için bir kontrol edin.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • ODN

    ODN

    26 Kasım 2006
  • The Warp Zone

    The Warp Zon

    24 AĞUSTOS 2007