public static T DisposeWith <T>( this T disposable, IDisposableBase disposableBase ) where T : IAsyncDisposable { return(DisposeWith(disposable, disposableBase.Disposables)); }
public static T DisposeWith <T>( this T disposable, IDisposableBase disposableBase, params IDisposable[] thenDispose ) where T : IDisposable { DisposeWith( new AsyncDisposableWrapper(disposable), disposableBase.Disposables, thenDispose.Select(x => new AsyncDisposableWrapper(x)).Cast <IAsyncDisposable>().ToArray() ); return(disposable); }