CodeGo.net>如何在ASP.NET Core中保持对象活动?

我有一个.NET Core MVC应用程序(C#),它使用C库(SWIG).在C#中,我需要创建其中一个类的实例,预设其回调并在服务器运行时保持其活动状态.使用此回调,我从C获取数据.我试图将对象存储在会话中,但是我只能在其中存储值:

HttpContext.Session.Set(key, value);

也尝试在启动时定义它,但是对象在初始化后被处置.在这种情况下最好的解决方案是什么?

注意:在回调函数中,我将使用SignalR发布数据.

解决方法:

在域名称空间中的某个位置创建此对象.

public static class SwiggStuff {
     public static SwigObject { get; }

     static SwiggStuff() {
          SwigObject = new SwigObject();
     }
}

现在,您可以在引用该对象所在的名称空间的任何位置访问swigobject,直到程序终止,该对象才被释放.

编辑(发布后的一年):即使此方法行之有效,也很好,但这并不是.NET Core应用程序中的真正方法. NET Core提供了自己的方式来管理作用域实例和单例.

如果您尝试在.NET Core应用程序的上下文中使用单例,请查看下面的答案.

上一篇:c#-在Web API中解密承载令牌


下一篇:的SignalR安全性:它如何工作?