using System; namespace NobleMuffins.LimbHacker.Guts { public class DisposableBundle: IDisposable { public DisposableBundle(TObject datum, Action callback) { this.datum = datum; this.callback = callback; disposed = false; } private readonly TObject datum; private readonly Action callback; private bool disposed; public TObject Object { get { return datum; } } public void Dispose() { if(!disposed) { disposed = true; callback(Object); } } } }