Как я могу эмулировать модули / установщики / реестры с помощью Simple Injector

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 :

Если компоненты зависят от контейнера, посмотрите, как они используют контейнер для получения сервисов и добавить эти сервисы в компонент (зависимость введены) аргументы конструктора.

13
задан Steven 18 September 2015 в 12:07
поделиться