Вместо этого:
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
и ваше сообщение мутатор имеет зависимости, то вы должны будете сказать NServiceBus, как разрешить эти зависимости:
Configure
.Instance
.Configurer
.ConfigureComponent(
() => new MessageMutator(new MessageMutatorDependency()),
DependencyLifecycle.InstancePerCall
);
Поскольку конечная точка отправки только я думаю, что есть способ вокруг него. Мне не нужно вызывать обработчики. –
В этом случае просто оставьте внутренний контейнер как есть и просто зарегистрируйте IBus в своем собственном контейнере SM? –