在我的程序中,我在program.cs中使用以下语句
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var init = new Initializer();
var container = new CompositionContainer(new DirectoryCatalog(Environment.CurrentDirectory));
container.ComposeExportedValue(string.Empty);
container.SatisfyImportsOnce(init);
if (init.PreleminaryCheck())
{
Form1 frm = new Form1();
container.SatisfyImportsOnce(frm);
Application.Run(frm);
}
我正在导出类如下
[Export(typeof(DatabaseMaster))]
public class DBManager : DatabaseMaster
[ImportingConstructor]
public DBManager(string filepath = "")
{
DbPath = filepath;
}
问题是我只是在Initializer类中初始化变量,在表单类中,DBManager的实例始终为null。我尝试在Form1变量上调用SatisfyImportOnce但没有运气。
答案 0 :(得分:1)
我通过将构件函数调用从构造函数移动到表单加载方法
来解决了这个问题