窗体的对象实现- c#
本文关键字:实现 对象 窗体 | 更新日期: 2023-09-27 18:12:20
我正在使用windows Forms c#与Ninject版本:2.0.0.1
第一次安装Ninject Package: ninject.extensions.infrastructure.winforms
public class CustomModule : NinjectModule
{
public override void Load()
{
Bind<IDAL.IORDR>().To<DAL.DAL_ORDR>();
}
}
我在下面做的第三个窗口表单
public partial class SODetails : Form
{
public IORDR _IORDR { get; set; }
[Inject]
public SODetails(IORDR ORDR)
{
_IORDR = ORDR;
}
public SODetails()
{
InitializeComponent();
}
}
最后,在Program.cs中,我编写了下面的代码
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var kernel = new StandardKernel(new CustomModule());
var form = kernel.Get<SODetails>();
Application.Run(form);
}
虽然我能够成功地注入依赖关系,但表单没有显示任何控制。
我从
更改了以下代码public partial class SODetails : Form
{
public IORDR _IORDR { get; set; }
[Inject]
public SODetails(IORDR ORDR)
{
_IORDR = ORDR;
}
public SODetails()
{
InitializeComponent();
}
}
public partial class SODetails : Form
{
public IORDR _IORDR { get; set; }
[Inject]
public SODetails(IORDR ORDR)
{
_IORDR = ORDR;
InitializeComponent();
}
public SODetails()
{
<年代> InitializeComponent (); 年代>
}
}
我看到问题了。
所以你的SODetails表单已经启动并运行了,但是它没有显示任何你在设计器中添加的控件。我说的对吗?
问题是InitializeComponent()没有被调用。
请更改代码,以便调用默认构造函数&一切都会好起来的。我做了一个小的改变你的代码构造函数链公共SODetails(IORDR ORDR): this(){…}
public IORDR _IORDR { get; set; }
[Inject]
public SODetails(IORDR ORDR) : this()
{
_IORDR = ORDR;
}
public SODetails()
{
InitializeComponent();
}
public IORDR _IORDR { get; set; }
[Inject]
public SODetails(IORDR ORDR) : this()
{
_IORDR = ORDR;
}
public SODetails()
{
InitializeComponent();
}