PRISM / MEF: ModuleExportAttribute против ExportAttribute? - PullRequest
1 голос
/ 14 марта 2011

Я не понимаю, в чем здесь разница, кто-нибудь хочет объяснить, чем ModuleExport отличается от экспорта?

1 Ответ

4 голосов
/ 14 марта 2011

ModuleExport - это ExportAttribute, но с некоторыми дополнительными специфичными для модуля свойствами.

Если вы посмотрите на исходный код для ModuleExport, вы обнаружите, что он имеет все свойства ExportAttribute, плюс:

  1. ModuleName
  2. ModuleType
  3. Зависимости модуля
  4. Инициализация модуля

Все это происходит из интерфейса IModuleExport .

Если вы посмотрите на ImportedModules свойство MefModuleManager (класс, отвечающий за поиск модулей), вы увидите, что он импортирует их все с использованием интерфейса IModuleExport, поэтому вы требуется использовать атрибут, реализующий IModuleExport, а не просто прямо [ExportAttribute(typeof(IModule))].

Надеюсь, это то, что вы искали.

...