我有一个winform用户控件。在构造函数中,我实例化了一个依赖项。它就像
public IProvider provider {get;set;}
public MyUserControl()
{
InitializeComponent();
provider = new MockProvider();//for testing. Will pass into constructor eventually
}
private void MyUserControl_Load(object sender, EventArgs e)
{
SomeModel model = new SomeModel(provider);//provider is null
//do work
model.InsertIntoDb();
}
我认为会员状态持续存在,直到您明确呼叫Form.Close()
。那么为什么在Load事件中提供者对象为null?
答案 0 :(得分:0)
这应该有效。确保new关键字在控件的构造函数中,并且某些东西在某处实例化该控件。
确保在第二个函数之前调用new。也许这是另一种方式。国家应该坚持下去。
答案 1 :(得分:0)
InitializeComponent()
正在设置“父”表单中的Provider = null
(实例化用户控件的表单)。很好地证明了winforms don't support无参数构造函数。