我正在研究一个示例项目,我需要创建一个GET方法,将结果保存在内存中而不是数据库中。
最初我在PersonController中创建了字典;但是,这是一个问题,因为在GET请求之后它不会在内存中持久存在。我需要弄清楚如何只创建一个NumbersByName实例并将其传递给Api控制器。可以这样做吗?
public class PersonController : ApiController
{
private readonly Dictionary<string, List<int>> NumbersByName;
public PersonController(Dictionary<string, List<int>> numbersByName)
{
NumbersByName = numbersByName;
}
[HttpGet]
public IHttpActionResult GetPersonsNumbers(string name)
{
var personsNumbers = NumbersByName[name];
return Ok(personsNumbers);
}
}
答案 0 :(得分:0)
您可以使用缓存来存储数据
示例:
public string[] GetNames()
{
string[] names = null;
if(Cache["names"] == null)
{
names = DB.GetNames();
Cache["names"] = names;
}
else
{
names = Cache["names"];
}
return names;
}
您可以在代码中应用相同的概念。您可以查看This
否则,您需要使用单例设计模式进行调查,这样您只需创建一个实例。