如何将对象而不是类型传递给Windsor容器?
时间:2020-03-06 14:50:28 来源:igfitidea点击:
我有以下课程:
public class ViewPage<TView,TPresenter> : Page where TView : IView where TPresenter : Presenter<TView> { public ViewPage() { if (!(this is TView)) throw new Exception(String.Format("The view must be of type {0}", typeof(TView))); IWindsorContainer container = new WindsorContainer(); container.AddComponent("view", typeof(IView), typeof(TView)); container.AddComponent("presenter", typeof(Presenter<TView>), typeof(TPresenter)); TPresenter presenter = container[typeof(TPresenter)] as TPresenter; } }
这是Presenter代码:
public class Presenter<T> where T : IView { public T View { get; private set; } public Presenter(T view) { this.View = view; } }
我想通过Windsor将ViewPage的当前实例传递给TPresenter,而不是实例化一个新对象。这可能吗?
解决方案
检查此博客。作者为确切问题解释了解决方案。