server/aspnetapp/Helper/SessionExtension.cs

(完整代码) 1KB

using System;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;

namespace aspnetapp.Helper
{
    /// <summary>
    /// Session扩展类
    /// </summary>
    public static class SessionExtension
    {
        /// <summary>
        /// 设置Session对象方法
        /// </summary>
        /// <typeparam name="T">泛型,默认为传入的模型,调用时可不填写</typeparam>
        /// <param name="session">默认当前Session,调用时可不填写</param>
        /// <param name="key">Session键,必填</param>
        /// <param name="obj">实体对象,必填</param>
        public static void SetObjectAsJson<T>(this ISession session, string key, T obj)
        {
            if (session == null)
            {
                return;
            }
            session.SetString(key, JsonConvert.SerializeObject(obj));
            session.CommitAsync().Wait();
        }

        /// <summary>
        /// 获取Session对象方法
        /// </summary>
        /// <typeparam name="T">泛型,指定获取后转成的模型,必填</typeparam>
        /// <param name="session">默认当前Session,调用时可不填写</param>
        /// <param name="key">Session键,必填</param>
        /// <returns>返回得到的指定T模型</returns>
        public static T GetObjectFromJson<T>(this ISession session, string key)
        {
            T result = default(T);
            var value = session.GetString(key);
            if (!String.IsNullOrEmpty(value))
            {
                result = JsonConvert.DeserializeObject<T>(value);
            }
            return result;
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。