[英]How to store data in Progressive Web Applications in .Net core 2.1?
[英]How to store data in a .NET Core 2.1 WebApi?
我正在.NET Core 2.1中開發WebApi,我需要有一個共享的鍵/值存儲,可以通過API收到的任何請求進行讀寫。
存儲應該使用應用程序的堆,而不是外部系統(例如Redis緩存或平面文件解決方案),因為我必須保留無法序列化的C#對象。
如果我沒看錯,您想將數據存儲在c#中,例如內存緩存。 您可以使用下面的類。
public class ApplicationCacheManager
{
private Dictionary<string, object> Data { get; set; }
public ApplicationCacheManager()
{
Data = new Dictionary<string, object>();
}
public bool IsSet(string key)
{
return Data.TryGetValue(key, out var data) && data != null;
}
public T Get<T>(string key)
{
if (Data.TryGetValue(key, out var data))
return (T)data;
return default(T);
}
public void Set<T>(string key, T data)
{
Data[key] = data;
}
public void Remove(string key)
{
Data.Remove(key);
}
public void Dispose()
{
if (Data != null)
Data = null;
}
}
此類應為單例,以存儲應用程序生命周期中的所有數據。 將其注冊為DI容器到DI容器。
services.AddSingleton<ApplicationCacheManager>();
如果希望此類是線程安全的,則可以將Dictinary更改為ConcurrentDictionary。 這里
我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.