2009-08-19 18 views
8

için genel bir arabirimin tüm uygulamalarını döndürmek için StructureMap'i kullanabilirim Genel bir arabirim var, IValidator. Ben Belirli bir tip parametresi

var PersonValidators = ObjectFactory.GetAllInstances<IValidator<Person>>(); 
var AddressValidators = ObjectFactory.GetAllInstances<IValidator<Address>>(); 

Ben IValidator uygulamak TÜM sınıfları nasıl geri getireceğini bilir Örneğin belirli bir tip T. için IValidator uygulamak tüm sınıfları listesini almak için StructureMap kullanabilmek için istiyorum ama bunu süzmek gerekiyor tür parametresinin türüne göre.

Herhangi biri bana herhangi bir rehber veya öneride bulunabilir mi?

Teşekkürler.

cevap

11

Örneğiniz gibi çalışır. Örneklerin konteynere kayıtlı olduğundan emin olmanız yeterlidir. Bir yol aşağıdaki türleri taramaktır:

ObjectFactory.Initialize(x => 
{ 
    x.Scan(scan => 
    { 
     scan.TheCallingAssembly(); 
     scan.WithDefaultConventions(); 
     scan.AddAllTypesOf<IValidator<Person>>(); 
     scan.AddAllTypesOf<IValidator<Address>>(); 
    }); 
}); 

var PersonValidators = ObjectFactory.GetAllInstances<IValidator<Person>>(); 
İlgili konular