2
我想用寫入db的數據庫(因此它可以在AWS上運行)替換默認的IDataBus
實現(寫入文件系統)。爲此,我有一個配置擴展:如何配置一個需要注入NServiceBus的依賴關係的新的IDataBus實現?
public static class ConfigureSqlServerDataBus
{
public static Configure SqlServerDataBus(this Configure config)
{
var dataBus = new SqlServerDataBus();
config.Configurer.RegisterSingleton<IDataBus>(dataBus);
return config;
}
}
允許我配置總線。但很明顯,我的SqlServerDataBus
對某些事情有依賴性,告訴它在哪裏寫(在這種情況下,執行一個IRepository
)。
通常我會通過構造函數請求依賴關係,但由於服務總線的配置是通過IWantCustomInitialization
來完成的,它將使用Activator
來創建我不能的實例。我的理解是,NServiceBus將使用屬性注入來滿足依賴關係,但似乎沒有這樣做。我有幾個這樣的電話我的配置完成後:
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);
,但我對SqlServerDataBus
制定者從來不被稱爲,雖然認沽方法。
有人能指出我做錯了什麼嗎?
最後到了今天測試這個,並使用RunCustomAction並把我的'Configure.Instance.Configurer.ConfigureComponent(ComponentCallModelEnum.None);'在那裏工作了一種享受。謝謝。 –
2012-07-26 15:13:45