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

  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007
  • Professor Messer

    Professor Me

    27 NİSAN 2007
  • Rugiagialia

    Rugiagialia

    1 Ocak 2008