gpt4 book ai didi

c# - ASP.NET MVP 注入(inject)服务依赖

转载 作者:太空狗 更新时间:2023-10-30 01:28:00 27 4
gpt4 key购买 nike

我有一个 ASP.NET 页面,它实现了我的 View 并在页面构造函数中创建了演示者。 Phil Haack's post providing was used as the starting point ,我将仅使用帖子中的示例来说明问题。

public partial class _Default : System.Web.UI.Page, IPostEditView {

PostEditController controller;
public _Default()
{
this.controller = new PostEditController(this, new BlogDataService());
}
}

注入(inject) BlogDataService 实例的最佳方法是什么?我发现的示例将 Page 类中的属性用于标记有注入(inject)框架解析的属性的依赖项。

但是,我更喜欢使用构造函数方法进行测试。

有没有人有意见或链接到上述的良好实现。我更喜欢 Ninject,但只要流畅,StructureMap 或 Windsor 都可以。

感谢任何反馈。

最佳答案

在我们自己开发的 MVP 框架中,我们有一个所有页面都继承自的类型化基类。类型需要是 Presenter 类型(我们的基本 Presenter 类)

然后在基类中,我们使用 IoC 容器初始化 Controller 。

示例代码:

public class EditPage : BasePage<EditController> {
}

public class EditController : Presenter {
public EditController(IService service) { }
}

public class BasePage<T> : Page where T: Presenter
{
T Presenter { get; set; }
public BasePage() {
Presenter = ObjectFactory.GetInstance<T>(); //StructureMap
}
}

希望这对您有所帮助!

关于c# - ASP.NET MVP 注入(inject)服务依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1711761/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com