Я использую Umbraco 7.1.1 с проектом MVC и настроил его для использования внедрения зависимостей (Castle.Windsor в моем случае). Я также использую NServiceBus для отправки сообщений и т. д., и он работает очень хорошо.
Теперь я пытаюсь подключиться к событию ContentService Published, чтобы попытаться опубликовать событие NServiceBus, чтобы предупредить другие службы об изменении содержимого. Я хотел бы сделать что-то вроде этого:
public class ContentPublishedEventHandler : ApplicationEventHandler
{
public IBus Bus { get; set; }
public ContentPublishedEventHandler()
{
ContentService.Published += ContentServiceOnPublished;
}
private void ContentServiceOnPublished(IPublishingStrategy sender, PublishEventArgs<IContent> publishEventArgs)
{
Bus.Publish<ContentUpdatedEvent>(e =>
{
e.UpdatedNodeIds = publishEventArgs.PublishedEntities.Select(c => c.Id);
});
}
}
Но в этом случае Bus
имеет значение null, поскольку моя структура внедрения зависимостей либо неправильно настроена, либо (как я подозреваю) никогда не вызывается.
Я могу заставить его работать, если полагаюсь на статическую ссылку на шину, но я бы предпочел избежать этого, если смогу. Возможно ли то, что я пытаюсь сделать? Т.е. использовать внедрение зависимостей с этими событиями Umbraco? Если да, то какая конфигурация мне нужна, чтобы Umbraco использовала Castle.Windsor для создания моего обработчика событий?