如何在ninject di和winforms中使用无参数构造函数

如何在ninject di和winforms中使用无参数构造函数,winforms,constructor,ninject,Winforms,Constructor,Ninject,我正在开发一个WinForm应用程序,使用ninject进行依赖注入。我的第一个问题是被实例化的表单有一个参数(对于DI)。我添加了一个无参数构造函数,认为这会有所帮助。现在的问题是,带参数的构造函数中的代码被跳过。下面是它的样子: 在我的主要表格上: private void mnuSettings_Click(object sender, System.EventArgs e) { frmSettings objForm = new frmSettings(); objForm.

我正在开发一个WinForm应用程序,使用ninject进行依赖注入。我的第一个问题是被实例化的表单有一个参数(对于DI)。我添加了一个无参数构造函数,认为这会有所帮助。现在的问题是,带参数的构造函数中的代码被跳过。下面是它的样子:

在我的主要表格上:

private void mnuSettings_Click(object sender, System.EventArgs e)
{
   frmSettings objForm = new frmSettings();
   objForm.Owner=this;
   objForm.Show();
}
在frmSettings表单中:

private readonly IApplicationPropertiesInterface _applicationProperties;

public frmSettings()
{
   InitializeComponent();
}

public frmSettings(IApplicationPropertiesInterface applicationProperties) : this()
{
   _applicationProperties = applicationProperties;
}
当我调用_applicationProperties.GetExtractFileSaveLocationDirectory()时,它会崩溃,因为设置_applicationProperties的代码从未被调用

我想知道我是否有结构错误,以及实现这一点的最佳方法是什么。我的目标是调用无参数构造函数,但还要设置applicationProperties


任何帮助都将不胜感激。

我猜您可能期望在大楼中安装Ninject将使
新的
与正常的工作方式不同。它不是-你需要做一个
内核。解析
,DI才能启动。请注意,这些陷阱中的大多数都在

您能否编辑您的答案,以包含您在本表之外所做工作的详细信息

同时,以下是一些之前的问题,这些问题有很大的重叠:-


FRM设置objForm必须按容器注册和解析。