+ DisposableExtensions.cs with SafeDispose