<Serializable()> Public Class StringTool Implements ISerializable <NonSerialized()> Public stBrush As SolidBrush Private Bcl As New Color Public Sub New()
End Sub Protected Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext) Dim cl As New Color cl = info.GetValue("BC", GetType(Color)) If cl.Name = "0" Then stBrush = Nothing Bcl = Nothing Else stBrush = New SolidBrush(cl) Bcl = cl End If End Sub
Private Sub GetObjectData(ByVal info As SerializationInfo, ByVal context As StreamingContext) _ Implements ISerializable.GetObjectData info.AddValue("BC", Bcl) End Sub
Public Sub SetProperty(ByVal br As Brush) stBrush = br If stBrush Is Nothing Then Bcl = Nothing Else Bcl = stBrush.Color End If End Sub
メンバ変数にPenとSolidBrushをもつクラスオブジェクトをシリアル化して
バイナリファイルに保存,読み込んで復元したいと考えていますが,これら2つの
オブジェクトは,Serializableでないため,通常の方法ではシリアル化できません.
これらのうち,ユーザーが変更するのは
Pen…色,太さ,スタイル
SolidBrush…色
だけなので,これらを別途変数としてもち,保存させ,
読み込み時に,シリアル化のカスタマイズを使って,
PenやSolidBrushを生成させ,保存しておいた色などをPen等に与えることで
オブジェクトを復元しようかと考えているのですが,
ヘルプ等を読んでも,カスタマイズの方法が,いまいちよくわかりません.
このような書き方でご理解していただけるかどうかわかりませんが,
ご理解できた方で,例文等,何か参考になることがあれば教えてください.
よろしくお願いいたします.