「C Sharpの基礎 - シリアライズ」の版間の差分

ナビゲーションに移動 検索に移動
(Wiki がページ「クラスの内容をバイナリファイルに保存または復元する(C Sharp)」を「C Sharpの基礎 - シリアライズ」に、リダイレクトを残さずに移動しました)
1行目: 1行目:
== 概要 ==
== 概要 ==
クラスの内容をバイナリファイルに保存する簡単な方法として、BinaryFormatterクラスを使う方法がある。<br>
クラスの内容をバイナリファイルに保存する簡単な方法として、<code>BinaryFormatter</code>クラスを使う方法がある。<br>
BinaryFormatterクラスを使用してクラスをシリアル化し、FileStreamでファイルに書き込む。<br>
<code>BinaryFormatter</code>クラスを使用してクラスをシリアル化して、<code>FileStream</code>でファイルに書き込む。<br>
<br>
<br>
 
<code>BinaryFormatter</code>クラスの代わりに<code>SoapFormatter</code>クラスを使って、XMLファイルに保存することもできる。<br>
'''※補足'''<br>
<code>SoapFormatter</code>クラスの使い方は、ここで記載している方法とほぼ同様である。<br>
BinaryFormatterクラスの代わりにSoapFormatterクラスを使って、XMLファイルに保存することもできる。<br>
<br>
SoapFormatterクラスの使い方は、ここで紹介している方法とほぼ同じである。<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>


案内メニュー