【发布时间】:2015-09-07 08:20:48
【问题描述】:
我们托管一些 WCF 服务,我们使用 Castle Windsor 作为 IOC,并使用 WCF 设施来托管服务:
Component.For<IInter1>()
.ImplementedBy<Class1>()
.LifestylePerWcfOperation()
.AsWcfService()
所有其他依赖项都在 Windsor 中使用 LifestylePerWcfOperation 注册。
Rebus 处理程序是这样的:
public class TestCastleRebusHandler : IHandleMessages<CastleRebusMessage>
{
public TestCastleRebusHandler(DependenchyWithWCFContext failsHere) { }
public void Handle(CastleRebusMessage message) { }
}
问题是所有的注册都是 PerWcfOperation 并且它们不能被注入到 Rebus 因为上下文不是 WCF,当接收到消息时。 Rebus 配置是:
_adapter = new Rebus.Castle.Windsor.WindsorContainerAdapter(Container);
_bus = Configure.With(_adapter)
.Logging(x => x.ColoredConsole(LogLevel.Info))
.Transport(x => x.UseMsmqAndGetInputQueueNameFromAppConfig())
.MessageOwnership(m => m.FromRebusConfigurationSection())
.Subscriptions(x => x.StoreInMemory())
.CreateBus()
.Start();
处理这种情况的最佳方法是什么?
肯
【问题讨论】:
标签: c# wcf nhibernate castle-windsor rebus