ひどりさんがキャッシュ機構を提供(http://blogs.users.gr.jp/hidori/archive/2004/04/19/2093.aspx)してくれましたのでそいつの評価をしてました。
DictinaryとListをつかって実装されているのですが、Imageを食べさせると問題があります。
ImageはIDisposableを実装していて、調べたわけではないですが内部に旧来のDCを抱えているのではないかと持っています。
そうなると作り捨てはかなり実行時例外の危険性を誘発するので、Disposeしてやらないと行けないと思います。
そう言う意味で実はIDisposableを意識したコレクションって無いんですよね(知っている限り)。このへんがIDisposableが異端児扱いされる理由かも。。。(^^;;;
なのでIDisposable版を作ろうと継承してこねこねしてたのですが、ちょっと無理そう(元のクラスをいじらないと)なので、かってながらVerUp依頼を。。。
- IDisposableを意識したクラスを作って欲しい
- IDisposableを継承して欲しい
- RemoveAllを追加して欲しい
- ListとDictinaryを暗黙privateからprotectedに変更して欲しい
- AddとRemoveをthisでやるのかAdd/Removeでやるか統一して欲しい(混ざってますよね?)
hDCを抱えているのであればメモリがいっぱいになったら消えていく機構にImageを突っ込むのは危険というこでこのへんは難しい現実ということでASP.NetでCacheを利用する場合にも注意が必要。
hDC抱えているかどうか誰か知ってますか?