スポンサーリンク
ROXY
スポンサーリンク

ASP.NET Core セッション変数にClassオブジェクトを保持する場合

ASP.NET Core
ASP.NET Core 2.2 で、セッション変数にClassやListなどのオブジェクトを保持したい場合、Session拡張メソッドを使うとシンプルなソースコードになる。
セッション変数のKey/Valueが増え過ぎて、メンテナンス不能になるのを防ぐ為には必須。

Session拡張メソッドを、ジェネリック指定でjson形式にシリアライズし保持する。
public static class SessionExtensions
{
    public static void Set<T>(this ISession session, string key, T value)
    {
        session.SetString(key, JsonConvert.SerializeObject(value));
    }
    public static T Get<T>(this ISession session, string key)
    {
        var value = session.GetString(key);
        return value == null ? default(T) :  JsonConvert.DeserializeObject<T>(value);
    }
}
 
セッションに保存。
HttpContext.Session.Set("TestClass1", new TestClass());
 
セッションから取得。
var testClass1 = HttpContext.Session.Get<TestClass>("TestClass1");
 
セッションデータ用のテストクラス。
public class TestClass
{
    public int Id { get; set; }
    public string Word { get; set; }
}
 
スポンサーリンク
Brandear(ブランディア)
スポンサーリンク

スポンサーリンク
ダイレクトテレショップ
スポンサーリンク

スポンサーリンク
WILLER TRAVEL
スポンサーリンク
開発のあいまに

コメント

スポンサーリンク
スポンサーリンク
Oisix(おいしっくす)
タイトルとURLをコピーしました