【发布时间】:2017-02-14 02:01:17
【问题描述】:
第一个问题:
services.AddMemoryCache(); // in Startup config
public class AController
{
public AController(IMemoryCache cacheA) { }
}
public class BController
{
public BController(IMemoryCache cacheB) { }
}
问题是cacheA和cacheB一样
我想要私有 API(集群连接)和公共 API(暴露给前端) 如何在保持所有 DI 模式友好的同时将它们分开?
第二个问题;
我想要一个通过 HTTP 请求一些外部网络服务器的服务 其结果将缓存在该服务中,也存储在数据库中 所以我们先查询localCache,再查询DB,再查询外部服务器
该服务的结果将在控制器中使用并发送到前端
如何用所有花哨的 asp.netcore 模式来实现这样的事情? 缓存必须是 ONE(singleton) 所以我们不会浪费数据库请求
?将此类服务添加为 services.SCOPED 但是如何使其缓存对于每个实例(一些单例 DI?或静态 MemoryCache 实例?) 我不知道,不知道请求帮助
在 node.js 中,我会在几分钟内完成所有操作,但它是微软,嘿
【问题讨论】:
-
一看源代码就可以回答你所有的问题:github.com/aspnet/Caching/blob/…
-
大声笑,这是一个很好的功能,如果 VS (Peek Definition - Alt F12) 可以准确地显示源代码,那将是一个很好的功能
标签: asp.net caching dependency-injection asp.net-core