シリアルライズしてファイルの読み書きするクラス
Public Class clsSerialize ''' <summary> ''' シリアライズされたデータの読み込み ''' </summary> ''' <typeparam name="T">クラス</typeparam> ''' <param name="_fp">ファイルパス</param> ''' <param name="_cls">読み込むオブジェクト</param> ''' <remarks></remarks> Public Shared Sub loadSerialize(Of T)(_fp As String, ByRef _cls As T) Dim serializer As New System.Xml.Serialization.XmlSerializer(GetType(T)) Dim _obj As Object = Nothing If My.Computer.FileSystem.FileExists(_fp) = True Then Using fs As New System.IO.FileStream(_fp, System.IO.FileMode.Open) _obj = serializer.Deserialize(fs) End Using _cls = CType(_obj, T) End If End Sub ''' <summary> ''' シリアライズされたデータの保存 ''' </summary> ''' <typeparam name="T">クラス</typeparam> ''' <param name="_fp">ファイルパス</param> ''' <param name="_cls">保存するオブジェクト</param> ''' <remarks></remarks> Public Shared Sub saveSerialize(Of T)(_fp As String, ByRef _cls As T) Dim serializer As New System.Xml.Serialization.XmlSerializer(GetType(T)) Dim _obj As Object = _cls Using fs As New System.IO.FileStream( _fp, System.IO.FileMode.Create) serializer.Serialize(fs, _obj) fs.Flush() End Using End Sub End Class
使用方法は、
' 設定保持クラス Public Class clsSetting Private _val As Boolean Public Property val As Boolean Get Return _val End Get Set(value As Boolean) _val = value End Set End Property End Class Public _setting As New clsSetting ' クラスの読み込み clsSerialize.loadSerialize(Of clsSetting)("clsSetting.xml",_setting) ' クラスの保存 clsSerialize.saveSerialize(Of clsSetting)("clsSetting.xml",_setting)
煩雑なファイル操作を必要とせずに、変数や状態の保存、読み出しができるので、重宝しています。