【发布时间】:2018-09-05 15:40:06
【问题描述】:
我有一个使用 C++ 库 (SWIG) 的 .NET Core MVC 应用程序 (C#)。在 C# 中,我需要创建其中一个类的实例,预设其回调并在服务器运行时使其保持活动状态。使用这个回调我从 C++ 中获取数据。我尝试将对象存储在会话中,但我只能在其中存储值:
HttpContext.Session.Set(key, value);
也尝试在Startup上定义它,但对象在初始化后被释放。在这种情况下,最好的解决方案是什么?
注意:在回调函数中,我使用 SignalR 发布数据。
【问题讨论】:
-
我认为你可以使用 in-mem 缓存 (docs.microsoft.com/en-us/aspnet/core/performance/caching/memory)
-
你考虑过静态字段吗?
-
您可以创建一个返回对象的服务,并将其注入单例生命周期。在这里查看stackoverflow.com/questions/38138100/…
-
@MBakardzhiev
services.addSingleton不起作用,作用域变量也不起作用,我已经尝试过了。 @buffjape 你的意思是控制器中的静态字段吗? -
使用静态构造函数创建一个静态类。静态构造函数只会在应用程序运行中第一次引用该类型时运行。给出返回 c++ 数据的类静态字段/方法。
标签: c# asp.net-core-mvc signalr