Chapter.18

構造化ストレージ(2)

2009/5/10
 ・.NET Framework 2.0用サンプルを追加。

1.構造化ストレージの入出力

前章のサンプルは、構造化ストレージの内容を読み取りコンソールに出力するというものでした。この章では、構造化ストレージファイルの作成、サブストレージの作成、削除および名前の変更、ストリームの作成、削除、名前の変更およびデータの読み書きという構造化ストレージの基本的な操作を扱います。


2.めんどくさいので構造化ストレージの詳細な解説はパス

構造化ストレージを入出力するサンプルソースです。例によってVB.NETとC#を用意しました。

VB.NETサンプルソース:chap18.vb.lzh(31KB 2005/7/26)
C#サンプルソース(.NET Framework 1.1用):chap18.cs.lzh(31KB 2005/7/26)
C#サンプルソース(.NET Framework 2.0用):chap18-2.cs.lzh(48KB 2009/5/10)

サンプルでは、ファイルを閉じる際にガベージコレクタを強制的に起動して、リソースのクリーンアップを行っています。 これは、ストレージもしくはストリームオブジェクトの参照がどこかに残っているためと考えられます。それらの参照をすべてSystem.Runtime.InteropServices.Marshal.ReleaseComObjectメソッドによって開放すれば、ガベージコレクタを起動する必要は無くなると考えられます。

なお、System.ComponentModel.Design.ByteViewerにはバグがあるらしく、大きいサイズのバイト配列を表示して一番下までスクロールした後、小さいサイズのバイト配列を表示しようとすると例外が発生します。どうやら、スクロール機能にバグがあるようです。まあ、問題になるとは思っていないので放置していますが・・・。


3.まとめ

とりあえず、ずっと放置していたので解説がめんどくさいのです。まあ、大目に見てやって下さい。


前へ 次へ
OLE on .NET Frameworkへ
総合トップへ