Я работаю над образцом приложения PRISM, и я хочу использовать MEF RegistrationBuilder
для создания всего моего экспорта. Эквивалент использования ExportAttribute
выглядит следующим образом:Возможно ли использовать MEF RegistrationBuilder для создания модуля PRISM ModuleExport?
[Export(typeof(IFooService))]
public class FooService : IFooService { ... }
Builder.ForTypesMatching(typeof(IFooService).IsAssignableFrom(type)).Export<IFooService>();
Однако модули используют другой атрибут, то ModuleExportAttribute
, например:
[ModuleExport(typeof(ModuleA), DependsOnModuleNames = new string[] { "ModuleB" })]
public sealed class ModuleA : IModule { ... }
Я не знаю, как использовать RegistrationBuilder
класс создайте экспорт модуля вместо использования ModuleExportAttribute
. Возможно ли это, поскольку он экспортируется иначе, чем стандартный экспорт?
Предлагаемый код; Важно отметить, что вы должны использовать правильную 'Export()' перегрузку. Кроме того, нет необходимости добавлять все метаданные, только те части, которые вам нужны, остальное будет иметь значение по умолчанию, и это нормально, если вы не хотите указывать такие вещи, как 'InitializationMode' или зависимости. Спасибо! –
Когда я проверил его, я не смог загрузить модули, в которых были только метаданные «DependsOnModuleNames», поэтому я предположил, что требуется добавить все метаданные. Возможно, некоторые свойства требуются, а некоторые необязательны, но я не уверен, как можно узнать, какие именно. –