【问题标题】:How to apply indexing with [] to an expression of type 'ISession'?如何将 [] 索引应用于“ISession”类型的表达式?
【发布时间】:2021-10-30 19:28:55
【问题描述】:

我正在努力解决这个问题:我正在尝试使用以下方法从他的会话中检索我的用户:

var user = HttpContext.Session.Get("User");

但与此同时,我正在尝试将其转换为 BusinessCustomer 对象:

var user = Convert.ToHttpContext.Session.GetString("User") as BusinessCustomer;

由于没有继承链接,所以出现问题,我不知道如何解决它

我正在考虑序列化用户,然后创建一个 BusinessCustomer 对象并用参数填充它,但我不知道它们是否是其他方式。

谢谢

【问题讨论】:

    标签: c# asp.net-mvc type-conversion asp.net-core-mvc .net-5


    【解决方案1】:

    首先你创建这个类

    public static class SessionExtensions
    {
        public static void SetObject(this ISession session, string key, object value)
        {
            session.SetString(key, JsonConvert.SerializeObject(value));
        }
    
        public static T GetObject<T>(this ISession session, string key)
        {
            var value = session.GetString(key);
            return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
        }
    }
    

    那么设置值就可以了

       var user = new User();
       HttpContext.Session.SetObject("User", user);
    

    最终得到你的价值

    var sessionUser = HttpContext.Session.GetObject<User>("User");
    

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2014-01-09
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多