0

在我的程序中,我在 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 的实例始终为空。我尝试在 Form1 变量上调用 SatisfyImportOnce 但没有运气。

4

1 回答 1

1

我通过将成员函数调用从构造函数移动到表单加载方法解决了这个问题,

于 2012-12-07T11:00:36.307 回答