簡體   English   中英

對象即使調用SatisfyImportOnce后仍為null-MEF

[英]objects being null even after calling SatisfyImportOnce - MEF

在我的程序中,我在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,但是沒有運氣。

我通過將成員函數調用從構造函數移到form load方法來解決了這個問題,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM