2つのデータソースを消費し、類似点と相違点を明らかにするアプリケーション(ASP.NET Web API経由で公開)を作成しています。同じインタフェースを実装する2つのオブジェクトに依存する単純なインジェクタ
public class FooController : WebAPI
{
public FooController(IFooRepository repoFromSourceA, IFooRepository repoFromSourceB)
{
...
}
}
1は、(SourceAとSourceBを交換することはできません)container.RegisterCollection(..)
が不可能(または非常に危険)を使用して作るように思われたソースであることの区別を維持:だからAPIは次のセットアップを持っています。さらに、1つのクラスが両方の実装を消費しているため、Decoratorは適合していないようです。
どうすればこの依存性注入を設定できますか?
誰かがこの質問に答える前に最も重要な質問は、2つの引数が(誤って)交換されたときに 'FooController'がどうなるかということです。したがって、新しいFooController(新しいRepoB()、新しいRepoA()) '(コンパイルする)をインスタンス化すると' FooController'は正しく機能しますか、それともブレークしますか(例えば例外がスローされます)? – Steven
例外は発生しませんが、APIは呼び出し側にあります。コールの中には、「Aには存在しBには存在しないアイテムを私に渡す」形式のものがあります。スワップされていれば、呼び出し元は項目を戻すことになりますが、結果は誤っています。 –