我正在編寫一個應用程序(通過ASP.NET Web API公開),它的目的是消耗兩個數據源,並揭示相似之處和差異。所以API具有以下設置:簡單的噴油器依賴於兩個實現相同接口的對象
public class FooController : WebAPI
{
public FooController(IFooRepository repoFromSourceA, IFooRepository repoFromSourceB)
{
...
}
}
維持其中之一是其源(SourceA和SourceB不能互換)似乎讓container.RegisterCollection(..)
不可能(或非常危險的)使用的區別。此外,由於一個類正在使用這兩種實現,裝飾者似乎不適合。
那麼,我會如何設置這個依賴注入?
在任何人能夠回答這個問題之前,最重要的問題是當兩個參數(意外)交換時'FooController'會發生什麼。因此,如果我們實例化新的FooController(新的RepoB(),新的RepoA())(它會編譯),'FooController'仍然會正常工作或者會中斷嗎? – Steven
它不會中斷(不會拋出任何異常),但是API會對調用者說謊。一些電話的格式是「給我存在於A中但不在B中的物品」。如果它們被交換,呼叫者將獲得物品(或沒有物品),但結果將是錯誤的。 –