0

我想在我的 MVC 项目上升级到 StructureMap 3.x,但我被困在 NServiceBus 4.x 上,因为 5.x 许可条款对我们有限的使用没有意义。MVC 项目是只发送的。

如何在保留 NSB 4.x 的同时升级 StructureMap?

4

2 回答 2

1

我在这里的邮件列表上问了同样的问题。当时的答案是不支持这种配置,AFAIK 没有改变。

我建议您向 Particular 发送一封电子邮件,看看您是否可以解决有关许可的问题,如果这对您的项目来说是一个亮点。

于 2015-03-04T17:17:26.120 回答
0

而不是这个:

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
    );
于 2015-03-12T19:52:11.603 回答