VB ソリューションでメイン クラスをシリアル化しようとしています。次のように、クラスの上部に Serializable 属性を追加しました。
<Serializable()>
Public Class Form1
次のコードを使用してシリアル化しています。
Public Sub serializeThis()
Dim fStream As FileStream
Try
fStream = New FileStream("C:\ObjectData.bin", FileMode.Create)
Dim bfmtr As New BinaryFormatter
bfmtr.Serialize(fStream, Me)
fStream.Close()
Catch ex As Exception
MsgBox("Failed to serialize: " & ex.Message)
Throw
End Try
End Sub
このメソッドを呼び出すと、次のエラーが発生します。
アセンブリ 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' に 'System.Windows.Forms.Form' と入力すると、シリアル化可能としてマークされません。
これは、クラスにアタッチされているフォームをシリアル化できないためだと思いますが、実際に何をしているのかわかりません。
このエラーを発生させずに、Form1 クラスに含まれるすべてのオブジェクトをシリアル化できますか? フォーム コントロールに関するデータを保存したくありませんForm1
。クラスの先頭で定義したすべてのオブジェクトを保存する必要があるだけです。
助けてくれてありがとう。