title: Async lazy initialization in static class not compiling
body: <p>I am attempting to incorporate async lazy initialization in a static class per Stephen Cleary's blog post (<a href="http://blog.stephencleary.com/2012/08/asynchronous-lazy-initialization.html" rel="nofollow">http://blog.stephencleary.com/2012/08/asynchronous-lazy-initialization.html</a>):</p>
  
  <pre><code>internal static class ThirdPartyCommunicator
  {
      private static readonly AsyncLazy&lt;IClient&gt; myClient = new AsyncLazy&lt;IClient&gt;
      (
       async () =&gt; { var client = await CreateClient(); return client; }
      );
  
      private static async Task&lt;IClient&gt; CreateClient()
      {
          var identity = service.GetIdentity();
  
          await identity.AuthenticationAsync();
  
          return identity.Client();
      }
  
     internal static async void DoWork()
     {     
        var client = await this.myClient; //compilation error
        ....
  </code></pre>
  
  <p>In <code>DoWork()</code>, I get the error:</p>
  
  <blockquote>
    <p>Cannot access static field "myClient" in non-static context</p>
  </blockquote>
  
  <p>I'm unclear as to what non-static context is causing this issue.</p>