title: C# Unit Testing: How do I set a Lazy<T>.ValueCreated to false?
body: <p>Basically, I have a unit test that gets a singleton instance of a class. Some of my tests required me to mock this singleton, so when I do Foo.Instance I get a different type of instance.</p>
  
  <p>The problem is that my checks are passing individually, but failing overall because one test is interfering with another.</p>
  
  <p>I tried to do a TestCleanup where I set: <code>Foo_Accessor._instance = null;</code> but that didn't work. What I really need is <code>Foo_Accessor._instance.IsValueCreated = false;</code> (_instance is a Lazy).</p>
  
  <p>Any way to unset the Lazy object that I didn't think of?</p>