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

  • cosmicrocketman

    cosmicrocket

    17 NİSAN 2006
  • optionalinfo

    optionalinfo

    29 EKİM 2005
  • Shameless Maya

    Shameless Ma

    24 Mayıs 2012