Autofac имеет модули, Windsor имеет установщики и реестры StructureMap ... с Simple Injector, как я могу упаковать логику конфигурации в классы многократного использования?
Я пробовал:
public interface IModule { }
public class FooModule : IModule
{
public FooModule(SimpleInjector.Container container)
{
container.RegisterSingleton();
container.RegisterSingleton();
}
}
И я использую его в корне композиции:
public static void Main(string[] args)
{
var container = new SimpleInjector.Container();
container.RegisterCollection(new FooModule(container));
...
}
Однако FooModule
зависит от контейнера и, возможно, не является хорошей практикой ...
см. http://code.google.com/p/autofac/wiki/BestPractices :
Если компоненты зависят от контейнера, посмотрите, как они используют контейнер для получения сервисов и добавить эти сервисы в компонент (зависимость введены) аргументы конструктора.