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

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

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

Re[3]: C#のシリアライズについて


(過去ログ 59 を表示中)

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

■34082 / inTopicNo.1)  C#のシリアライズについて
  
□投稿者/ 大五朗 (1回)-(2009/03/18(Wed) 17:37:31)

分類:[C#] 

こんにちは。C#のシリアライズについて質問です。
クラスをシリアライズしてバイナリファイルとして保存
したいのですが、基本データ型(int, char, float等)ではない
データを含むクラスのシリアライズはできないのでしょうか。

例えば、読み込んだ画像ファイルの状態を格納しているクラスや構造体等を
シリアライズして保存してしまえば、次読み込むときにこれを使えばいいので、
画像ファイルを直接読み込むよりも負担がなさそうなのですが・・・

引用返信 編集キー/
■34086 / inTopicNo.2)  Re[1]: C#のシリアライズについて
□投稿者/ 魔界の仮面弁士 (1017回)-(2009/03/18(Wed) 18:55:48)
No34082 (大五朗 さん) に返信
> 基本データ型(int, char, float等)ではない
> データを含むクラスのシリアライズはできないのでしょうか。

それらのデータが、SerializableAttribute 属性を付与された型であれば可能です。
(そのような型には、たとえば、int や Bitmap や DataSet などがあります)
引用返信 編集キー/
■34089 / inTopicNo.3)  Re[2]: C#のシリアライズについて
□投稿者/ 大五朗 (2回)-(2009/03/18(Wed) 19:57:49)
No34086 (魔界の仮面弁士 さん) に返信
> ■No34082 (大五朗 さん) に返信
>>基本データ型(int, char, float等)ではない
>>データを含むクラスのシリアライズはできないのでしょうか。
>
> それらのデータが、SerializableAttribute 属性を付与された型であれば可能です。
> (そのような型には、たとえば、int や Bitmap や DataSet などがあります)

ありがとうございます。SerializableAttribute 属性を付与されていない型を
なんとかシリアライズする方法はないでしょうか。
引用返信 編集キー/
■34092 / inTopicNo.4)  Re[3]: C#のシリアライズについて
□投稿者/ Azulean (326回)-(2009/03/18(Wed) 23:29:50)
> ありがとうございます。SerializableAttribute 属性を付与されていない型を
> なんとかシリアライズする方法はないでしょうか。
辞めた方が無難です。
理由としては、シリアライズすることを想定していないクラスを無理矢理シリアライズすると、その中身の状態が壊れる可能性があります。


どうしてもというのであれば、そのクラスを使う自作クラスをシリアライズ可能としておき、シリアル化で対象のクラスを再現するのに必要な情報を保存するコードを書き、逆シリアル化で対象のクラスのインスタンスを作成して、情報を元に再現させるといったところでしょうか。
(内部的にはそのクラスをシリアライズしていないが、それを使うクラス側でフォローする形でシリアライズを実現する)

具体的なやり方は、カスタムなシリアル化あたりをキーワードに探って下さい。
http://msdn.microsoft.com/ja-jp/library/ty01x675.aspx
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -