13,009
回編集
細 (Wiki がページ「クラスの内容をバイナリファイルに保存または復元する(C Sharp)」を「C Sharpの基礎 - シリアライズ」に、リダイレクトを残さずに移動しました) |
(→概要) |
||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
クラスの内容をバイナリファイルに保存する簡単な方法として、<code>BinaryFormatter</code>クラスを使う方法がある。<br> | |||
<code>BinaryFormatter</code>クラスを使用してクラスをシリアル化して、<code>FileStream</code>でファイルに書き込む。<br> | |||
<br> | <br> | ||
<code>BinaryFormatter</code>クラスの代わりに<code>SoapFormatter</code>クラスを使って、XMLファイルに保存することもできる。<br> | |||
'' | <code>SoapFormatter</code>クラスの使い方は、ここで記載している方法とほぼ同様である。<br> | ||
<br> | |||
* 対象となるクラスの条件 | |||
** publicである | |||
**: publicではないクラスをシリアル化しようとすると、以下に示す<code>InvalidOperationException</code>例外が発生する。 | |||
**:<code>"保護レベルの設定が原因で 'ProjectName.ClassName' にアクセスできません。パブリックの型のみ処理できます。"</code> | |||
** publicな既定のコンストラクタを有する | |||
**: publicな既定のコンストラクタを持たないクラスをシリアル化しようとすると、以下に示す<code>InvalidOperationException</code>例外が発生する。 | |||
**: <code>"ProjectName.ClassName にはパラメーターを持たないコンストラクターが含まれていないため、これをシリアル化することはできません。"</code> | |||
*: <br> | |||
* 対象となる要素 | |||
** publicフィールド | |||
** getアクセサおよびsetアクセサを有するpublicプロパティ | |||
<br><br> | <br><br> | ||