私は MVC プロジェクトで Umbraco 7.1.1 を使用しており、依存性注入 (私の場合は 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 を使用してイベント ハンドラーを作成するように指示するには、どのような構成が必要ですか?