我想在我的 MVC 项目上升级到 StructureMap 3.x,但我被困在 NServiceBus 4.x 上,因为 5.x 许可条款对我们有限的使用没有意义。MVC 项目是只发送的。
如何在保留 NSB 4.x 的同时升级 StructureMap?
我想在我的 MVC 项目上升级到 StructureMap 3.x,但我被困在 NServiceBus 4.x 上,因为 5.x 许可条款对我们有限的使用没有意义。MVC 项目是只发送的。
如何在保留 NSB 4.x 的同时升级 StructureMap?
我在这里的邮件列表上问了同样的问题。当时的答案是不支持这种配置,AFAIK 没有改变。
我建议您向 Particular 发送一封电子邮件,看看您是否可以解决有关许可的问题,如果这对您的项目来说是一个亮点。
而不是这个:
Configure
.With()
.StructureMapBuilder(ObjectFactory.Container)
使用默认容器:
Configure
.With()
.DefaultBuilder()
因为您不再传递ObjectFactory.Container
到 NServiceBus,所以您需要告诉 StructureMap 如何IBus
作为依赖项来实现,例如您的 MVC 控制器:
x.For<NServiceBus.IBus>()
.Use(() => Configure
.Instance
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<Windows>().Install())
);
如果你有 NServiceBus 需要创建的东西,例如实现的东西IMutateOutgoingMessages
并且你的消息 mutator 有依赖关系,那么你必须告诉 NServiceBus 如何解决这些依赖关系:
Configure
.Instance
.Configurer
.ConfigureComponent(
() => new MessageMutator(new MessageMutatorDependency()),
DependencyLifecycle.InstancePerCall
);