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

  • finalcall07

    finalcall07

    11 NİSAN 2008
  • FND Films

    FND Films

    2 Mayıs 2006
  • Theodore Leaf

    Theodore Lea

    29 AĞUSTOS 2006