无法使用NServiceBus-6.x中的CastleWindsor解析IMessageSession
我使用的是NServiceBus v6和NServiceBus.Host。我无法解析messageSession对象。我错过了什么无法使用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
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的实例,但我不确定这是否是正确的方法。我对另一个问题的回答将有所帮助: