Caliburn.Micro. Автоматически вызывать eventaggregator.Subscribe () для разработчиков IHandle с MEF - PullRequest
1 голос
/ 24 октября 2011

В документации Caliburn.Micro авторы упоминают такую ​​возможность:

ссылка на документацию

IHandle inherits from a marker interface IHandle. This allows the use of casting to determine if an object instance subscribes to any events. This enables simple auto-subscribing if you integrate with an IoC container. Most IoC containers (including the SimpleContainer) provide a hook for being called when a new instance is created. Simply wire for your container’s callback, inspect the instance being created to see if it implement IHandle, and if it does, call Subscribe on the event aggregator.

Как этого можно добиться с помощью MEF?

Этот вопростакой же как Caliburn.Micro.Автоматически вызывать eventaggregator.Subscribe () для разработчиков IHandle с Autofac

Так как же реализована функциональность, аналогичная описанному AutoSubscribeHandersModule в MEF?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2011

Я написал в блоге о том, как сделать автоматическую разводку для агрегатора событий с MEF в Caliburn Micro здесь; http://www.kjetilk.com/2011/10/auto-wiring-eventaggregator.html.

Короче говоря; Вам необходимо добавить MEFContrib (nuget -> Install-Package MefContrib), реализовать IExportedValueInterceptor, который подписывается на любые IHandle экземпляры, и подключить перехватчик к конвейеру создания MEF, используя InterceptionCatalog в загрузчике.

0 голосов
/ 25 октября 2011

Проверьте MEFContrib's InterceptingCatalog . Просто поместите IHandle вместо IStartable, как описано в указанной статье.

...