Bir arabirim bir arabirimin tüm örneklerini nasıl alabilir ve sonra bunlara erişebilir?Her bir arayüzün nasıl kaydedileceği ve bunların bir bütün olarak nasıl bir araya getirileceği.
Kod parçaları buradan alınır: Fail-Tracker StrcutureMap yılında
olası bir derleme bir arayüz her türlü kayıt ve aşağıdaki gibi bunlara erişmek için:
public class TaskRegistry : Registry
{
public TaskRegistry()
{
Scan(scan =>
{
scan.AssembliesFromApplicationBaseDirectory(
a => a.FullName.StartsWith("FailTracker"));
scan.AddAllTypesOf<IRunAtInit>();
scan.AddAllTypesOf<IRunAtStartup>();
scan.AddAllTypesOf<IRunOnEachRequest>();
scan.AddAllTypesOf<IRunOnError>();
scan.AddAllTypesOf<IRunAfterEachRequest>();
});
}
}
ObjectFactory.Configure(cfg =>
{
cfg.AddRegistry(new TaskRegistry());
});
ardından uygulayan her türlü erişmek gibi arabirimler:
using (var container = ObjectFactory.Container.GetNestedContainer())
{
foreach (var task in container.GetAllInstances<IRunAtInit>())
{
task.Execute();
}
foreach (var task in container.GetAllInstances<IRunAtStartup>())
{
task.Execute();
}
}
Bu kodun birliği eşdeğer nedir?
Nasıl StructureMap
public void Application_BeginRequest()
{
Container = ObjectFactory.Container.GetNestedContainer();
foreach (var task in Container.GetAllInstances<IRunOnEachRequest>())
{
task.Execute();
}
}