Configuration 在初始化或IConfigureHisendPoint中,使用哪一个?
我知道我们可以实现IWantCustomInitialization来配置NServicebus和其他IoC控制器,比如Castle.Windsor,但我发现这已经过时了。在新版本中,我使用了IneeInitialization,但它也没有解决我的问题,因为容器是在“IneeInitialization.Customize”调用之前指定的,所以 最后,我实现了IConfigureHisendPoint作为最终解决方案 总结一下我的问题;何时使用“IneInInitialization”和“IConfigureThisEndpoint”Configuration 在初始化或IConfigureHisendPoint中,使用哪一个?,configuration,nservicebus,Configuration,Nservicebus,我知道我们可以实现IWantCustomInitialization来配置NServicebus和其他IoC控制器,比如Castle.Windsor,但我发现这已经过时了。在新版本中,我使用了IneeInitialization,但它也没有解决我的问题,因为容器是在“IneeInitialization.Customize”调用之前指定的,所以 最后,我实现了IConfigureHisendPoint作为最终解决方案 总结一下我的问题;何时使用“IneInInitialization”和“ICo
致以最诚挚的问候随着时间的推移和NServiceBus的v5版本,这一点有所改变。对于上下文,您可以。目的是:
- IConfigureThisEndpoint-用于配置端点。每个实例只能有1个
- 初始化-用于配置端点使用的组件。每个实例可以有多个此的实现李>
公共类EndpointConfig:IConfigureThisEndpoint,AsA_服务器,使用传输
{
公共void自定义(总线配置)
{
configuration.UsePersistence();
}
}
何时在初始化中使用的示例
class ResponderInstaller:初始化无效
{
公共void Init()
{
Configure.Instance.Configurer.ConfigureComponent(DependencyLifecycle.InstancePerCall);
}
}
两者都让您可以做基本相同的事情。最大的区别在于,IConfigureThisEndpoint
是每个端点一次,所以您可以使用它来配置真正特定于端点的东西IneInitialization
可以有许多实现,并且所有实现都可以执行。因此,您可以将多个INeedInitialization
行为打包到一个约定程序集中,并在整个解决方案中使用它们来执行多个(或所有)端点共同的任务。edit:抱歉,提供了一个关于首次初始化的错误示例
public class EndpointConfig : IConfigureThisEndpoint, AsA_Server, UsingTransport<MsmqTransport>
{
public void Customize(BusConfiguration configuration)
{
configuration.UsePersistence<NHibernatePersistence>();
}
}
class ResponderInstaller : INeedInitialization
{
public void Init()
{
Configure.Instance.Configurer.ConfigureComponent<CustomHttpResponder>(DependencyLifecycle.InstancePerCall);
}
}