public static void DisposeObject(String instanceKey) { lock (AccessLock) { IDisposable obj = ContextProvider.GetItem <IDisposable>(instanceKey); if (obj == null) { return; } obj.Dispose(); ContextProvider.SetItem <IDisposable>(instanceKey, null); } }
public static TDisposable RequestDisposableObject <TDisposable>(Func <TDisposable> constructor, String instanceKey) where TDisposable : class, IDisposable { lock (AccessLock) { TDisposable obj = ContextProvider.GetItem <TDisposable>(instanceKey); if (obj != null) { return(obj); } obj = constructor(); ContextProvider.SetItem(instanceKey, obj); return(obj); } }