public void Dispose() { if (ctx != null) { // only *actually* dispose if this is context-bound; note that non-bound // objects are cheekily re-used, and *must* be left intact agter a "using" etc ctx.ReleaseToPool(value); value = null; ctx = null; } }