C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: 自作コントロールがシリアライズできない


(過去ログ 43 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■22585 / inTopicNo.1)  自作コントロールがシリアライズできない
  
□投稿者/ ハムナプトラ (1回)-(2008/07/28(Mon) 06:29:30)

分類:[.NET 全般] 

質問を御願いします。
LABELを継承した@図形オブジェクトと
List(Of 〜)を継承したA図形のコレクションのクラスを作りました。
この図形コレクションクラスをBでシリアライズしようとすると
Cのエラーが発生します
LABELがシリアライズできないようなのですが
これをシリアライズする方法はあるのでしょうか。

============================================================
@
<System.Serializable()> Public Class 図形オブジェクト
Inherits System.Windows.Forms.Label
’中略
End Class
============================================================
A
<Serializable()> Public Class 図形コレクションクラス
Inherits System.Collections.Generic.List(Of 図形オブジェクト)
’中略
End Class
============================================================
B
Dim バイナリ As New Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim ストリーム As New System.IO.FileStream(フルパス, System.IO.FileMode.Create)
バイナリ.Serialize(ストリーム,図形コレクションのインスタンス)←ここでエラー
ストリーム.Close()
============================================================
C
アセンブリ 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' の型 'System.Windows.Forms.Label' はシリアル化可能として設定されていません。
============================================================

引用返信 編集キー/
■22586 / inTopicNo.2)  Re[1]: 自作コントロールがシリアライズできない
□投稿者/ 黒龍 (112回)-(2008/07/28(Mon) 08:03:35)
エラーにもあるようにLabelがSerializableではないためそのままではシリアライズできませんね。
図形オブジェクトを継承しないようなつくりにする必要があると思います。
引用返信 編集キー/
■22638 / inTopicNo.3)  Re[2]: 自作コントロールがシリアライズできない
□投稿者/ ハムナプトラ (2回)-(2008/07/29(Tue) 06:51:09)
No22586 (黒龍 さん) に返信
> エラーにもあるようにLabelがSerializableではないためそのままではシリアライズできませんね。
> 図形オブジェクトを継承しないようなつくりにする必要があると思います。

エラーからそれは理解できるのですが
LABEL等のCONTROLをSerializableにする方法はないのでしょうか?
netで調べる限りでは、英語力のない私には見つけることができませんでしたorz


引用返信 編集キー/
■22639 / inTopicNo.4)  Re[3]: 自作コントロールがシリアライズできない
□投稿者/ も (30回)-(2008/07/29(Tue) 07:08:14)
No22638 (ハムナプトラ さん) に返信
> ■No22586 (黒龍 さん) に返信
>>エラーにもあるようにLabelがSerializableではないためそのままではシリアライズできませんね。
>>図形オブジェクトを継承しないようなつくりにする必要があると思います。
>
> エラーからそれは理解できるのですが
> LABEL等のCONTROLをSerializableにする方法はないのでしょうか?
少なくともただのlabelに関しては方法は無いです.

> netで調べる限りでは、英語力のない私には見つけることができませんでしたorz
labelをシリアル化するのではなく,ラベルを表示するために必要な情報(テキストとかフォントとか)をシリアル化して,
実行時に再構築するというのはどうでしょう.
ただのパズルです.
引用返信 編集キー/
■22721 / inTopicNo.5)  Re[4]: 自作コントロールがシリアライズできない
□投稿者/ ハムナプトラ (3回)-(2008/07/30(Wed) 17:43:42)
No22639 (も さん) に返信
>>LABEL等のCONTROLをSerializableにする方法はないのでしょうか?
> 少なくともただのlabelに関しては方法は無いです.
> 実行時に再構築するというのはどうでしょう.

その方法にしようと思います。
どうもありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -