C# 即使在调用SatisfyImportOnce-MEF之后,对象仍为null

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

在我的程序中,我使用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;
        }

问题是,我只是在初始化器类中初始化变量,在form类中,DBManager的实例总是空的。我尝试对Form1变量调用SatisfyImporton,但没有成功。

我通过将成员函数调用从构造函数移动到form load方法解决了这个问题