Configuration 在初始化或IConfigureHisendPoint中,使用哪一个?

Configuration 在初始化或IConfigureHisendPoint中,使用哪一个?,configuration,nservicebus,Configuration,Nservicebus,我知道我们可以实现IWantCustomInitialization来配置NServicebus和其他IoC控制器,比如Castle.Windsor,但我发现这已经过时了。在新版本中,我使用了IneeInitialization,但它也没有解决我的问题,因为容器是在“IneeInitialization.Customize”调用之前指定的,所以 最后,我实现了IConfigureHisendPoint作为最终解决方案 总结一下我的问题;何时使用“IneInInitialization”和“ICo

我知道我们可以实现IWantCustomInitialization来配置NServicebus和其他IoC控制器,比如Castle.Windsor,但我发现这已经过时了。在新版本中,我使用了IneeInitialization,但它也没有解决我的问题,因为容器是在“IneeInitialization.Customize”调用之前指定的,所以 最后,我实现了IConfigureHisendPoint作为最终解决方案

总结一下我的问题;何时使用“IneInInitialization”和“IConfigureThisEndpoint”


致以最诚挚的问候

随着时间的推移和NServiceBus的v5版本,这一点有所改变。对于上下文,您可以。目的是:

  • IConfigureThisEndpoint-用于配置端点。每个实例只能有1个
  • 初始化-用于配置端点使用的组件。每个实例可以有多个此的实现
何时使用IConfigureHiseEndpoint的示例()

公共类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);
        }
    }