导航

01-009 HttpAbstractions 之 SessionCollectionExtensions

Posted on 2015-03-06 14:37  DotNet1010  阅读(127)  评论(0)    收藏  举报
  public static void SetInt(this ISessionCollection session, string key, int value)
        {
            var bytes = new byte[]
            {
                (byte)(value >> 24),
                (byte)(0xFF & (value >> 16)),
                (byte)(0xFF & (value >> 8)),
                (byte)(0xFF & value)
            };
            session.Set(key, bytes);
        }

        public static int? GetInt(this ISessionCollection session, string key)
        {
            var data = session.Get(key);
            if (data == null || data.Length < 4)
            {
                return null;
            }
            return data[0] << 24 | data[1] << 16 | data[2] << 8 | data[3];
        }

 上述两个方法分别为 把 int 转化为byte[] 和 把byte[] 转换为 int 的方法。

 该类并没有实现 long 类型的存储。

本来想用 左移 右移 来实现的,怎么基础比较差:还是用现成的轮子吧:

        public static void SetLong(this ISessionCollection session, string key, long value)
        {
            var bytes = BitConverter.GetBytes(value);
            session.Set(key, bytes);
        }

        public static long? GetLong(this ISessionCollection session, string key)
        {

            var data = session.Get(key);
            if (data == null || data.Length < 8)
            {
                return null;
            }
            return BitConverter.ToInt64(data, 0);
        }