http://msdn2.microsoft.com/en-us/library/fs2xkftw.aspx
のコードをみて、以下のように書いたら、base.Dispose() が呼ばれない可能性があるということで、FxCopの警告が出た。
protected override void Dispose(bool disposing) {
if(!this.disposed) {
try {
if(disposing) {
addedManaged.Dispose();
}
this.disposed = true;
} finally {
base.Dispose(disposing);
}
}
}
なので、以下のように書き換えた。
protected override void Dispose(bool disposing) {
try {
if(!this.disposed) {
if(disposing) {
addedManaged.Dispose();
}
this.disposed = true;
}
} finally {
base.Dispose(disposing);
}
}
この場合は、base.Dispose(true)が複数回呼ばれる可能性がある。でも基底クラスのDispose()もパターンに則って書かれているはずだから、問題はでないはず...
僕の好みは、前者なんだけど、まあいいか。