Передайте значение времени выполнения в конструктор, используя Simple Injector abd WebFormsMVP
я пытаюсь объединитьSimpleInjector с WebFormsMvp.
Для облегчения DI WebFormsMvp предоставляетIPresenterFactory
интерфейс.
Он содержитCreate
метод, который обеспечиваеттип докладчика для разрешения ипросмотреть экземпляр.
Мне необходимовпрыскивать просмотреть экземпляр в конструктор ведущий.
Ведущийтакже имеетдругие зависимости что нужно создаватьконтейнером
Это то, что я получил до сих пор, но это не идеально.
Какие'справильное решение для проблемы?
Ведущий конструктор:
public FooPresenter(IFooView view, IClientFactory clientFactory) : base(view)
Фабрика:
public class SimpleInjectorPresenterFactory : IPresenterFactory
{
private readonly Container _container;
private IView _currentView;
public SimpleInjectorPresenterFactory()
{
_container = new Container();
Func isIView =
type => typeof(IView).IsAssignableFrom(type);
_container.ResolveUnregisteredType += (s, e) => {
if (isIView(e.UnregisteredServiceType))
e.Register(() => _currentView);
};
}
public IPresenter Create(Type presenterType, Type viewType, IView viewInstance)
{
lock (_currentView)
{
_currentView = viewInstance;
return _container.GetInstance(presenterType) as IPresenter;
}
}
}