WinForms启动窗体可以用作Unity容器的复合根吗
我在VisualStudio中将WinForms应用程序设置为N层解决方案。 我想使用WinForms应用程序中的第一个启动表单作为Unity注册和解析的位置。当表单开始启动时,这在初始化步骤中是正确的。如果我将Unity设置放在这里,那么我就不必担心从单独的项目向启动表单传递参数。启动窗体基本上是WinForms应用程序中所有窗体的主要窗体。所有其他表单直接或间接地从主表单派生 如果在主窗体中设置了Unity,我可以在这里注册所有要注入到所有其他子窗体和项目类中的接口类。这样做会导致任何严重的问题吗?或者这种方法效果良好吗WinForms启动窗体可以用作Unity容器的复合根吗,winforms,dependency-injection,inversion-of-control,unity-container,Winforms,Dependency Injection,Inversion Of Control,Unity Container,我在VisualStudio中将WinForms应用程序设置为N层解决方案。 我想使用WinForms应用程序中的第一个启动表单作为Unity注册和解析的位置。当表单开始启动时,这在初始化步骤中是正确的。如果我将Unity设置放在这里,那么我就不必担心从单独的项目向启动表单传递参数。启动窗体基本上是WinForms应用程序中所有窗体的主要窗体。所有其他表单直接或间接地从主表单派生 如果在主窗体中设置了Unity,我可以在这里注册所有要注入到所有其他子窗体和项目类中的接口类。这样做会导致任何严重的
我喜欢这种方法,因为这意味着我不必创建一个单独的项目来建立Unity,也不必注册该项目中的所有接口类来传递给第一个启动表单。主表单的责任与UI相关,它与用户交互 如果遵循,则不希望在主窗体中添加另一个职责(编写应用程序) 更清楚地说,现在至少有两个原因需要更改主窗体类:
Program.cs
文件中Program
类的Main
方法中(对于C语言)实际创建并运行主窗体实例的文件