C# 即使在调用SatisfyImportOnce-MEF之后,对象仍为null
在我的程序中,我使用program.cs中的以下语句C# 即使在调用SatisfyImportOnce-MEF之后,对象仍为null,c#,mef,C#,Mef,在我的程序中,我使用program.cs中的以下语句 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var init = new Initializer(); var container = new CompositionContainer(new DirectoryCatalog(Environment.CurrentDirector
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;
}
问题是,我只是在初始化器类中初始化变量,在form类中,DBManager的实例总是空的。我尝试对Form1变量调用SatisfyImporton,但没有成功。我通过将成员函数调用从构造函数移动到form load方法解决了这个问题