ASP.NET でSessionでクラスインスタンスを扱う方法
ASP.NETで開発している際に、
Sessionでクラスのインスタンスを持ち回りたいシチュエーションが、
ままあります。
通常ではSessionにクラスインスタンスを代入するとエラーとなりますが、
以下のようにすると、Sessionでクラスのインスタンスを扱えるようになります。
<Serializable()> _ Public Class Customer Private _Name As String = "" Public Property Name() As String Get Return _Name End Get Set(ByVal Value As String) _Name = Value End Set End Property End Class 'セッションへ入れるステップ Dim targetCustomer As Customer = New Customer targetCustomer.Name = "ジョン" Session("顧客") = targetCustomer 'セッションから取り出し Dim targetCustomer As Customer = CType(Session("顧客"), Customer) Dim customerName As String = targetCustomer.Name targetCustomer.Name = "ジョージ"
Sessionで扱いたいクラスの先頭に「Serializable()」キーワードを付けることにより、
そのクラスがシリアライズ可能となり、Sessionで扱うことで出来るようになります。
ただし、シリアライズ可能とする際には、
以下の点に注意が必要です。