Dependency injection 如何配置一个新的IDataBus实现,该实现具有需要注入到NServiceBus中的依赖项?

Dependency injection 如何配置一个新的IDataBus实现,该实现具有需要注入到NServiceBus中的依赖项?,dependency-injection,nservicebus,Dependency Injection,Nservicebus,我想将默认的IDataBus实现(写入文件系统)替换为写入数据库的实现(这样它就可以在AWS上运行)。为此,我有一个配置扩展: public static class ConfigureSqlServerDataBus { public static Configure SqlServerDataBus(this Configure config) { var dataBus = new SqlServerDataBus(); config.Con

我想将默认的
IDataBus
实现(写入文件系统)替换为写入数据库的实现(这样它就可以在AWS上运行)。为此,我有一个配置扩展:

public static class ConfigureSqlServerDataBus
{
    public static Configure SqlServerDataBus(this Configure config)
    {
        var dataBus = new SqlServerDataBus();
        config.Configurer.RegisterSingleton<IDataBus>(dataBus);
        return config;
    }
}
但是我的
SqlServerDataBus
的setter从未被调用,尽管Put方法是


有人能指出我做错了什么吗?

总线启动后,您不能更改配置。要将配置调用移动到流畅的初始化代码中,请使用RunCustomAction方法


或者,您可以编写一个实现IneeInitialization的新类,并在其中进行配置调用。该类将在正确的时间被调用。

总线启动后,您不能更改配置。要将配置调用移动到流畅的初始化代码中,请使用RunCustomAction方法


或者,您可以编写一个实现IneeInitialization的新类,并在其中进行配置调用。这个类将在正确的时间被调用。

今天终于开始测试这个类,并使用RunCustomAction将我的
Configure.Instance.Configurer.ConfigureComponent(ComponentCallModelEnum.None)放入其中在那里工作了一次。谢谢。今天终于抽出时间来测试它,并使用RunCustomAction并放置我的
Configure.Instance.Configurer.ConfigureComponent(ComponentCallModelEnum.None)在那里工作了一次。谢谢
Configure
.With()
.DefineEndpointName("SomeName")
.DefaultBuilder()
.DBSubcriptionStorage()
.XmlSerializer()
.SqlServerDataBus()
.MsmqTransport()
    .IsTransactional(true)
.UnicastBus()
.LoadMessageHandlers()
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());


Configure.Instance.Configurer.ConfigureComponent<RepositoryImplementation>(ComponentCallModelEnum.None);
Configure.Instance.Configurer.ConfigureComponent<SqlServerDataBus>(ComponentCallModelEnum.None);