TryDisposable (nuget): Wrap an object in a disposable decorator to attempt to dispose the object later. This is useful when retrieving an instance of an object from a factory or container while only having an interface reference. If the interface  does not implement IDisposable or IAsyncDisposable, but the concrete class does, this will allow you to dispose the instance without the need to check for the interface and cast it.
Keywords: dispose|disposable|IDisposable|IAsyncDisposable|factory|nuget|try-dispose