-1
Singleton<ICache, LocalClusterCache>
Singleton<ICache, CloudCache>
在同一個控制器
我希望同時使用,但DI不會允許我可以改用
Singleton<LocalClusterCache, LocalClusterCache>
Singleton<CloudCache, CloudCache>
,但我不認爲它正確的方式
另一個問題:
我想Singleton<ICache, LocalCache>
是InternalApiController中的不同實例和PublicAPIControlle中的不同實例裏可以使用專用靜態無功那些控制器內,它的工作,但它不是M $「DI」模式,即時通訊混淆的第一個問題
services.AddSingleton<ClassA>(); // same interface
services.AddSingleton<ClassB>();
// then in controller
SomeInterface classA = (ClassA)provider.GetService(typeof(ClassA));
SomeInterface classB = (ClassB)provider.GetService(typeof(ClassB));
,做工作
編輯解決方案(不知道如果它的百分之百正確的方式做M $方式)
我編輯帖子添加一個可能的解決方案, 添加單獨的工廠類添加了大量的開銷(沒人想要它) 但仍然不知道如何解決第二個問題,我的意思是同一類的DI單例,但單獨每個控制器都可以很容易地通過靜態私有屬性來完成,但它不是DI然後 – gdpm
@gdpm它可能只是一個非常小的類,它記錄了緩存策略選擇,我沒有看到任何問題。但確定請求具體的類,容器將幫助它們的依賴關係(如果有的話),所以我仍然很看重這樣做。 – Joppe