using Microsoft.AspNetCore.Http; using Newtonsoft.Json; using System.Linq.Expressions; namespace Masuit.Tools.Core.Net { /// /// Web操作扩展 /// public static class WebExtension { /// /// 写Session /// /// /// 键 /// 值 public static void Set(this ISession session, string key, object value) { session.SetString(key, value.ToJsonString()); } /// /// 获取Session /// /// 对象 /// /// 键 /// 对象 public static T Get(this ISession session, string key) { string value = session.GetString(key); if (string.IsNullOrEmpty(value)) { return typeof(T).Namespace switch { "System.Collections.Generic" => (T)(Expression.Lambda(Expression.New(typeof(T))).Compile().DynamicInvoke()), _ => default }; } return JsonConvert.DeserializeObject(value); } } }