Skip to content

DisposableBag class

Attributes: [DebuggerDisplay("{DebuggerDisplay,nq}")]

Defined in

Namespace: ReactiveUI.Primitives.Disposables Assembly: ReactiveUI.Disposables.dll Full name: ReactiveUI.Primitives.Disposables.DisposableBag Modifiers: public sealed

Summary

View source

A small composite-disposable replacement specialised for the common 2-slot "subscription + sink" pair found throughout this codebase. Avoids the List backing field of System.Reactive.Disposables.CompositeDisposable.

Applies to

net10.0, net10.0-browserwasm1.0, net10.0-desktop1.0, net9.0, net9.0-browserwasm1.0, net9.0-desktop1.0, net8.0, net8.0-ios17.5, net8.0-maccatalyst17.5, net8.0-macos14.2, net8.0-macos14.5, net8.0-tvos17.2, netstandard2.1, net462, net481

Class hierarchy
classDiagram
class DisposableBag
class IsDisposed {
    <>
}
IsDisposed <|.. DisposableBag
class IDisposable {
    <>
}
IDisposable <|.. DisposableBag

Implements: IsDisposed, IDisposable

Remarks

        The first two added entries are stored inline. A third or later entry causes a fall-back
        to a heap-allocated array. Disposal is idempotent and disposes every contained entry,
        in registration order, exactly once.
        

Constructors

NameSummary
.ctorInitializes a new instance of the [DisposableBag](# class.

Properties

NameSummary
IsDisposedGets a value indicating whether this instance has been disposed.

Methods

NameSummary
AddAdds a disposable to the bag. If the bag is already disposed, the supplied disposable is disposed immediately.
Dispose
Inherited members