wangzhibo
2026-05-09 53418655c061ac26f66058253f39200aced1ab1d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System.Text.Json;
using Microsoft.AspNetCore.Http;
 
namespace BoardApp.Session;
 
public static class SessionExtensions
{
    private static readonly JsonSerializerOptions JsonOpts = new()
    {
        PropertyNameCaseInsensitive = true
    };
 
    public static void SetJson<T>(this ISession session, string key, T value)
    {
        session.SetString(key, JsonSerializer.Serialize(value, JsonOpts));
    }
 
    public static T? GetJson<T>(this ISession session, string key)
    {
        var raw = session.GetString(key);
        if (string.IsNullOrWhiteSpace(raw)) return default;
        try
        {
            return JsonSerializer.Deserialize<T>(raw, JsonOpts);
        }
        catch
        {
            return default;
        }
    }
}