无法使用NServiceBus-6.x中的CastleWindsor解析IMessageSession

无法使用NServiceBus-6.x中的CastleWindsor解析IMessageSession,nservicebus,Nservicebus,我使用的是NServiceBus v6和NServiceBus.Host。我无法解析messageSession对象。我错过了什么 var container2 = new WindsorContainer(); Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); log4net.Config.XmlConfigurator.Configure(new FileInfo("lo

我使用的是NServiceBus v6和NServiceBus.Host。我无法解析messageSession对象。我错过了什么

var container2 = new WindsorContainer();
        Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
        log4net.Config.XmlConfigurator.Configure(new FileInfo("logging.config"));
        LogManager.Use<Log4NetFactory>();

        endpointConfiguration.DefineEndpointName("Strategy.Service");
        endpointConfiguration.UseSerialization<JsonSerializer>();
        endpointConfiguration.UsePersistence<NHibernatePersistence>();
        endpointConfiguration.UseTransport<SqlServerTransport>();
        endpointConfiguration.Conventions()
            .DefiningCommandsAs(x => x.Namespace != null && x.Namespace.Contains("Commands"))
            .DefiningEventsAs(x => x.Namespace != null && x.Namespace.Contains("Events"));
        endpointConfiguration.UseContainer<WindsorBuilder>(
            customizations: customizations =>
            {
                customizations.ExistingContainer(container2);
            });
        endpointConfiguration.SendFailedMessagesTo("error");
        endpointConfiguration.AuditProcessedMessagesTo("audit");
        endpointConfiguration.DefineCriticalErrorAction(onCriticalError: async context =>
        {
            _logger.Fatal($"CRITICAL: {context.Error}", context.Exception);
            await context.Stop()
                .ConfigureAwait(false);
            var output =
                $"NServiceBus critical error: {Environment.NewLine}{context.Error}{Environment.NewLine}Shutting Down.";
            Environment.FailFast(output, context.Exception);
        });
        var msgSessions = container2.Resolve<IMessageSession>(); // Cannot resolve IMessageSession.
var container2=新WindsorContainer();
目录.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
Configure(新文件信息(“logging.Config”);
LogManager.Use();
endpointConfiguration.DefineEndpointName(“Strategy.Service”);
endpointConfiguration.UseSerialization();
endpointConfiguration.UsePersistence();
endpointConfiguration.UseTransport();
endpointConfiguration.Conventions()
.DefiningCommandsAs(x=>x.Namespace!=null&&x.Namespace.Contains(“命令”))
.DefiningEventsAs(x=>x.Namespace!=null&&x.Namespace.Contains(“事件”);
endpointConfiguration.UseContainer(
定制:定制=>
{
定制。现有容器(container2);
});
endpointConfiguration.SendFailedMessageTo(“错误”);
endpointConfiguration.AuditProcessedMessageTo(“审核”);
endpointConfiguration.DefineCriticalErrorAction(onCriticalError:async context=>
{
_logger.Fatal($“CRITICAL:{context.Error}”,context.Exception);
等待上下文。停止()
.配置等待(错误);
无功输出=
$“NServiceBus严重错误:{Environment.NewLine}{context.error}{Environment.NewLine}正在关闭。”;
FailFast(输出、上下文、异常);
});
var msgSessions=container2.Resolve();//无法解析IMessageSession。

IMessageSession
未通过NServiceBus在容器中注册。启动端点时,您将获得对
IMessageSession
的引用:

var endpointInstance = await Endpoint.Start(endpointConfiguration);
IMessageSession messageSession = endpointInstance as IMessageSession;

有关NServiceBus未将
IMessageSession
注入容器的原因的详细信息,请参阅。

IMessageSession
未通过NServiceBus在容器中注册。启动端点时,您将获得对
IMessageSession
的引用:

var endpointInstance = await Endpoint.Start(endpointConfiguration);
IMessageSession messageSession = endpointInstance as IMessageSession;

有关NServiceBus未将
IMessageSession
注入容器的原因的更多信息,请参阅。

我使用的是NServiceBus.Host-因此我获得了EndPointConfiguration实例,不必担心启动端点。我有一种实现iwanttorunhenendpointstartsandstops以获取IMessageSession实例的粗略方法,但我不确定这是否是正确的方法。我对另一个问题的回答将有所帮助:我使用的是NServiceBus.Host-因此我获得了EndPointConfiguration实例,我不必担心启动端点。我有一个实现iwanttorunhenendpointstartsandstops的粗略方法来获取IMessageSession的实例,但我不确定这是否是正确的方法。我对另一个问题的回答将有所帮助: