using Caliburn.Events.Brokering; using Castle.Core; using Castle.MicroKernel; using Castle.MicroKernel.ModelBuilder; namespace Caliburn.Castle { public class EventPublicationContributer : IContributeComponentModelConstruction { public const string PublishedEvents = "PublishedEvents"; private readonly IEventBroker _eventBroker; public EventPublicationContributer(IEventBroker eventBroker) { _eventBroker = eventBroker; } #region IContributeComponentModelConstruction Members public void ProcessModel(IKernel kernel, ComponentModel model) { model.ExtendedProperties[PublishedEvents] = _eventBroker.GetPublishedEvents(model.Implementation); } #endregion } }