Concurrency 如何在不使用数据库的情况下在服务器端存储每个用户的持久对象?

Concurrency 如何在不使用数据库的情况下在服务器端存储每个用户的持久对象?,concurrency,global-variables,asp.net-core-2.0,server-side,static-variables,Concurrency,Global Variables,Asp.net Core 2.0,Server Side,Static Variables,我需要在我的.net核心razor页面web应用程序中为每个用户存储一个持久对象。此对象是结构化列表、字符串和数字的集合。在应用程序生命周期中,应用程序的每个用户都需要有一个唯一且持久的对象,但是不同的用户不应该共享他们的对象。此对象需要可以从任何页面访问和修改 我目前使用的是静态类,但我希望避免并发问题。此外,此对象需要存储在服务器端(无会话和配置) 如有任何建议,将不胜感激。提前谢谢。看一看IMemoryCache它是框架本身提供的一个简单对象,您可以为服务器中的每个用户在其中缓存一些数据。

我需要在我的.net核心razor页面web应用程序中为每个用户存储一个持久对象。此对象是结构化列表、字符串和数字的集合。在应用程序生命周期中,应用程序的每个用户都需要有一个唯一且持久的对象,但是不同的用户不应该共享他们的对象。此对象需要可以从任何页面访问和修改

我目前使用的是静态类,但我希望避免并发问题。此外,此对象需要存储在服务器端(无会话和配置)


如有任何建议,将不胜感激。提前谢谢。

看一看
IMemoryCache
它是框架本身提供的一个简单对象,您可以为服务器中的每个用户在其中缓存一些数据。 您可以简单地使用DI注入它并使用它。看一看使用它的官方文档,它是相当简单和直接的。

谢谢@F\u IVI\L的回答。我看了你提供的链接。他们在文档的开头提到了这句话:“应用程序应该被编写和测试,永远不依赖于缓存数据。”。在我的例子中,如果没有这些对象,应用程序将永远无法运行。尽管如此,我将在本周末尝试实施您建议的解决方案,然后我会回到您身边:)。您不应该在生产场景中使用这种类型的缓存,但是,您可以将其用作解决简单问题的黑客。如果生产需要持久内存数据,则必须使用其他解决方案,如Redis或将其存储在数据库中。