DisposableComponents 1.3.3
dotnet add package DisposableComponents --version 1.3.3
NuGet\Install-Package DisposableComponents -Version 1.3.3
<PackageReference Include="DisposableComponents" Version="1.3.3" />
paket add DisposableComponents --version 1.3.3
#r "nuget: DisposableComponents, 1.3.3"
// Install DisposableComponents as a Cake Addin #addin nuget:?package=DisposableComponents&version=1.3.3 // Install DisposableComponents as a Cake Tool #tool nuget:?package=DisposableComponents&version=1.3.3
DisposableComponents
Tools for more convenient use of IDisposable interface.
Feature
Easy to know if Dispose() has been called!
var disposable = new SampleDisposable();
// false
Console.WriteLine(disposable.IsDisposed);
disposable.Dispose();
// true
Console.WriteLine(disposable.IsDisposed);
Notification by event is also possible.
var disposable = new SampleDisposable();
disposable.Disposing += (s, e) =>
{
Console.WriteLine("Disposing!");
};
disposable.Disposed += (s, e) =>
{
Console.WriteLine("Disposed!");
};
disposable.Dispose();
Just inherit!
This adds the definition of the IDisposable interface and the IsDisposed property,
which can determine if an object has been disposed of.
public class SampleDisposable : DisposableComponent
{
private readonly IDisposable _something;
public SampleDisposable()
{
_something = new DummyDisposable();
// If registered to this property, it is destroyed at the same time as the call to Dispose().
// This is due to DisposableCollection (see below)
Disposable.Add(_something);
}
protected override void OnDisposing()
{
// When this object is destroyed (when Dispose() is called), additional processing can be performed.
}
protected override void OnDisposed()
{
// When this object is destroyed (when Dispose() is called), additional processing can be performed.
}
}
A DisposableCollection is also available to dispose of multiple registered IDisposables at once.
var disposableCollection = new DisposableCollection();
disposableCollection.Add(somethingDisposable1);
disposableCollection.Add(somethingDisposable2);
disposableCollection.Add(somethingDisposable3);
// All at once!
disposableCollection.Dispose();
Installation
See NuGet or GitHub for the latest version.
for PackageManager
Install-Package DisposableComponents -Version 1.1.4
for dotnet
dotnet add PROJECT package DisposableComponents --version 1.1.4
Licence
"DisposableComponents" is under MIT license .
Note
This repository was created with the help of the following third-party tools.
- Nerdbank.GitVersioning
- Copyright (c) .NET Foundation and Contributors
- MIT license
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.