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()もパターンに則って書かれているはずだから、問題はでないはず...
僕の好みは、前者なんだけど、まあいいか。