IDataBus
デフォルトの実装 (ファイルシステムに書き込む) を db に書き込む (AWS で実行できるようにする) ものに置き換えたいと考えています。この目的のために、私は構成拡張機能を持っています:
public static class ConfigureSqlServerDataBus
{
public static Configure SqlServerDataBus(this Configure config)
{
var dataBus = new SqlServerDataBus();
config.Configurer.RegisterSingleton<IDataBus>(dataBus);
return config;
}
}
バスを構成できるようにします。しかし、明らかに myは、どこに書き込むかを指示するもの (この場合は実装) に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);
Put メソッドは呼び出されますが、私のセッターSqlServerDataBus
は呼び出されません。
誰かが私が間違っていることを指摘できますか?