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

  • akalyne

    akalyne

    13 Mayıs 2009
  • Jaclyn W

    Jaclyn W

    5 Mayıs 2006
  • pissengehen

    pissengehen

    26 EYLÜL 2006