为什么MEF组合不起作用?

时间:2013-10-24 10:42:19

标签: c# mef composition

我已宣布收藏:

[ImportMany]
IEnumerable<ServiceDivision> ServiceDivisions { get; set; }

我在DoComposition

之后直接在构造函数中调用InitializeComponent
private void DoComposition()
{
    var divisionCatalog = new DirectoryCatalog(ConfigurationManager.AppSettings[AppSettingsKeys.ServiceDivisionsPath], "*.dll");
    var container = new CompositionContainer(divisionCatalog);
    container.ComposeParts(this);
}

然而,在调用它之后,ServiceDivisions没有元素。我在其他两个项目中使用了相同的模式并且它有效。一个断点和手表告诉我divisionCatalog有3个加载的文件和4个部分。每个部分都声明如下:

[Export(typeof(ServiceDivision))]
[SectionUIMetadata(MenuText = "System Configuration")]
internal class ConfigDivision : ServiceDivision
{
}

我不明白为什么这些部分没有导入ServiceDivisions;它们被加载到目录中,它们的类型正确。可能有什么不对?

0 个答案:

没有答案