-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