0

我已经宣布收藏:

[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;它们已加载到目录中,并且它们的类型正确。有什么问题?

4

0 回答 0