.Net Core是我的新手,所以请您原谅那些愚蠢的问题。 我正在将后端写到一个新应用程序中,该应用程序封装了给定应用程序的所有业务逻辑,然后将其打包在NuGet包中以供使用。
完成后,有几种方法可用于(1)Winforms应用程序和(2)通过Web服务使用此程序包。 我有与当前用户会话相关的各种数据,需要在各个点上进行存储和使用-例如进程标识符。 我曾打算将此信息存储为静态变量,但这仅适用于winforms应用程序。将这些数据作为静态存储在Web服务中将意味着其他用户会话/连接在应各自具有各自的进程标识符时将使用相同的数据。然后我想到了使用httpcontext会话,但是很明显,这仅在不适合Winforms的Web环境中可用。
我的问题确实是-在网络核心世界中,最好在哪里存储这样的变量,这些变量将在当前用户会话中持续使用,但是在进程退出/完成时被废弃? 我虽然有关于将信息存储在线程上的信息(暂时异步到一侧),但这感觉不对-只是一种感觉-没有扎实的推理。 任何人对此的任何想法/想法都将不胜感激。
预先感谢
答案 0 :(得分:0)
您想要的是感兴趣的过程通信。
与.net core或winforms无关。
基本上,您可以将数据保留在Winforms或服务或Web应用程序边界之外的任何地方。
如果暂时需要存储数据,则可以将数据保留在缓存中(例如redis缓存)。
如果需要永久存储,还可以将数据保留在数据库中。
Web应用程序,winform和服务都应有权访问数据库。
应该有一个可以轮询的组件,以告知Winform应用程序或服务何时Web应用程序更新数据。