是的,可以将C#类的实例绑定到ASP.NET Core会话中。可以使用“Session”属性访问会话。要将类的实例绑定到会话中,可以使用以下代码:
将实例保存到会话中:
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
public static class SessionExtensions {
public static void SetObjectAsJson(this ISession session, string key, object value) {
session.SetString(key, JsonConvert.SerializeObject(value));
}
public static T GetObjectFromJson(this ISession session, string key) {
var value = session.GetString(key);
return value == null ? default(T) : JsonConvert.DeserializeObject(value);
}
}
// ...
MyClass myClass = new MyClass();
HttpContext.Session.SetObjectAsJson("MyClassInstance", myClass);
从会话中获取实例:
MyClass myClass = HttpContext.Session.GetObjectFromJson("MyClassInstance");
注意:要从会话中检索类的实例,必须使用相同的键。在这个示例中,我们使用“MyClassInstance”的键。
这样做时请注意不要将太大的对象存储在会话中,以免对性能产生不利影响。