c# – MVP依赖注入
使用MVP,施工和依赖注入的正常顺序是什么?
通常您为每个视图创建一个演示者,并将视图传递给构造函数中的演示者.但是如果你有: >多个视图需要收听事件的服务. 有人可以从用户点击数据从服务器返回到服务中显示正常的信息流. 解决方法
这是我做的:
首先我定义了这些接口: public interface IView<TPresenter> { TPresenter Presenter { get; set; } } public interface IPresenter<TView,TPresenter> where TView : IView<TPresenter> where TPresenter : IPresenter<TView,TPresenter> { TView View { get; set; } } 那么这个抽象主持人类: public abstract class AbstractPresenter<TView,TPresenter> : IPresenter<TView,TPresenter> where TView : IView<TPresenter> where TPresenter : class,IPresenter<TView,TPresenter> { protected TView view; public TView View { get { return this.view; } set { this.view = value; this.view.Presenter = this as TPresenter; } } } 视图是通过属性注入的,而不是构造函数,以允许设置器中的双向感情.请注意,需要安全投掷… 那么我的具体主持人就是这样: public class MyPresenter : AbstractPresenter<IMyView,MyPresenter> { //... } IMyView实现IView的位置.必须存在具体的视图类型(例如MyView),但它是解析它的容器: >我在容器中注册MyPresenter类型,具有暂时的行为. 它允许您将其他依赖项(服务,repos)注入到您的视图和演示者中.但是在您描述的场景中,我建议您将演示者注入服务和缓存,而不是视图. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |