我在我的 WinForms 应用程序中使用统一容器并注册接口和类。但是当打开其他表单时,它不适用于获取数据。它只适用于form1。如何解决所有表格?
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
RegisterType(new UnityContainer());
}
public static void RegisterType(IUnityContainer container)
{
container.RegisterType<IBlogRepository, BlogRepository>();
container.RegisterType<IPostRepository, PostRepository>();
Application.Run(container.Resolve<Form1>());
}
}
这是 form1() 中的构造函数注入:
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
}
private readonly IBlogRepository _blogRepository;
public Form1(IBlogRepository blogRepository) : this()
{
_blogRepository = blogRepository;
}
}
这是 formAddUpdate() 中的构造函数注入:
public partial class FormAddUpdate : Form
{
public FormAddUpdate()
{
InitializeComponent();
}
private readonly IBlogRepository _blogRepository;
private readonly IPostRepository _postRepository;
public FormAddUpdate(IBlogRepository blogRepository, IPostRepository postRepository) : this()
{
_blogRepository = blogRepository;
_postRepository = postRepository;
}
}
现在,当运行应用程序时,我可以从 from1 检索数据,但是当切换到添加/更新表单时,它返回错误:{“对象引用未设置为对象的实例。”}
如何解决我的应用程序中的所有表格?