0

我想要关于 c#、windows 窗体和统一 IoC 框架的架构决策的建议。将表单保持在统一环境中是个好主意吗?还是应该只保留服务层及以下层?这里是不是像“取决于”一样统一(类似于春天的东西取决于何时有豆子相互依赖)。提前致谢。

4

1 回答 1

2

通常,您应该尝试让您的 DI 框架为您构建完整的对象图。

然而,对于 Windows 窗体,窗体类应该有一个默认构造函数,因为平台会为您创建这些类型。这意味着您将不得不求助于其他机制来构建这些类。

这同样适用于 Windows 窗体。与 ASP.NET Web 窗体相比,Windows 窗体不要求窗体具有默认构造函数。因此,让容器为您构建包括表单在内的完整对象图是一种很好的做法,因为这允许验证整个对象图并防止您的表示层依赖于 DI 框架。这意味着您应该在表单中使用构造函数注入:

public MainForm : Form
{
    private readonly ILogger logger;

    public MainForm(ILogger Logger)
    {
        this.logger = logger;
    }
}
于 2013-05-07T09:02:23.780 回答