3
我已閱讀所有關於組合導入而不導出包含類的問題的所有問題,但找不到解決方案。有沒有人知道一種方法來實現我想要做的事情?MEF導入組合問題
我的模塊組件有內部使用的表單和類。這些形式需要不加載訪問一些出口合同,但進口的,因爲它們不是在MEF「合成樹」
主機組裝:
public class Host
{
public Host()
{ /* Compose parts here... */ }
[Export(typeof(Licence))]
public Licence LoadedLicence { get; set; }
[Export(typeof(IModule))]
public List<IModule> LoadedModules { get; set; }
}
模塊組件:
[Export(typeof(IModule))]
public class Module : IModule
{
public Module() { }
public void DoSomething()
{
SubForm sub = new SubForm();
sub.ShowDialog();
}
[Import(typeof(Licence))]
public Licence LoadedLicence { get; set; } // This works here
}
public class SubForm : Form
{
public SubForm()
{ }
[Import(typeof(Licence))]
public Licence LoadedLicence { get; set; } // This doesn't work in here
}
據我所見,我的選擇是:
- 將參數傳遞給構造函數(痛苦)
- 在需要導入的類上使用虛擬導出滿足?
其他?