我想了解有关c#,windows窗体和统一IoC框架的架构决策的建议。将表格保持在统一的上下文中是一个好主意吗?或者只应将服务层和下层保留在其中?并且在这里像是“依赖于”统一的东西(类似于春天的东西取决于当豆子彼此依赖时)。提前谢谢。
答案 0 :(得分:2)
通常,您应该尝试让DI框架为您构建完整的对象图。
但是,对于Windows窗体,Form类应该有一个默认构造函数,因为平台会为您创建这些类型。这意味着您将不得不求助于其他机制来构建这些类。
这同样适用于Windows表单。与ASP.NET Web窗体相比,Windows Forms does not require forms to have a default constructor。因此,优良作法是让容器构建包含表单的完整对象图,因为这样可以验证整个对象图,并防止表示层依赖于DI框架。这意味着您应该在表单中使用构造函数注入:
public MainForm : Form
{
private readonly ILogger logger;
public MainForm(ILogger Logger)
{
this.logger = logger;
}
}