我在 Windows 窗体应用程序中使用 Unity DI。到目前为止,它正在解决对 program.cs 中主要表单的依赖关系,如下所示:
static void Main()
{
IUnityContainer container = new UnityContainer();
container.AddNewExtensionIfNotPresent<EnterpriseLibraryCoreExtension>();
container.RegisterType<IAccountService, AccountService>();
container.RegisterType<IAccountRepository, AccountRepository>();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(container.Resolve <MainForm>());
}
我的问题是当我的 MainForm 尝试创建子表单时:
ChildForm childForm = new ChildForm();
childForm.Show();
我收到一个错误,因为我正在尝试使用构造函数注入并且我没有传入构造函数参数。我还尝试使用带有 [Dependency] 属性的 setter 注入,但这也不起作用。我应该如何做到这一点?我可以让我的主窗体具有所有依赖项并将所需的对象传递给子窗体,但如果我最终有许多子窗体,那么主窗体会很乱。