我已宣布收藏:
[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
;它们被加载到目录中,它们的类型正确。可能有什么不对?