 <p>Is there a larger context in which you are operating? In ASP.NET I've created a PerRequestLifetimeManager that returns the same object when it is requested multiple times during a single HTTP request.</p> <p><strong>EDIT:</strong> Here's an implementation if you're interested.</p> <pre><code>public class PerRequestLifetimeManager : LifetimeManager { private readonly object key = new object(); public override object GetValue() { if (HttpContext.Current != null &amp;&amp; HttpContext.Current.Items.Contains(key)) return HttpContext.Current.Items[key]; else return null; } public override void RemoveValue() { if (HttpContext.Current != null) HttpContext.Current.Items.Remove(key); } public override void SetValue(object newValue) { if (HttpContext.Current != null) HttpContext.Current.Items[key] = newValue; } </code></pre>