title: CS0120 error under vs2010 beta 2 - object reference is required
body: <p>the following code used to work fine under vs2008: </p>
  
  <pre><code>namespace N2.Engine.Globalization
  {
      public class DictionaryScope : Scope
      {
                  object previousValue;
          public DictionaryScope(IDictionary dictionary, object key, object value)
              : base(delegate
              {
  
                  if (dictionary.Contains(key))
                      previousValue = dictionary[key];
                  dictionary[key] = value;
              }, delegate
              {
                  if (previousValue == null)
                      dictionary.Remove(key);
                  else
                      dictionary[key] = previousValue;
              })
          {
  
          }
      }
  }
  </code></pre>
  
  <p>but now it reports  An object reference is required for the non-static field, method, or property 'N2.Engine.Globalization.DictionaryScope.previousValue'</p>
  
  <p>It seems something changed in the compiler? Any workarounds? </p>
  
  <p>update:</p>
  
  <p>regarding the suggestion to use a virtual method. This probably wouldn work either, as the virtual method would get called from the base constructor, which I believe is also not possible? </p>
  
  <p>Here is the implementation of the Scope (base class):</p>
  
  <pre><code>public class Scope: IDisposable
      {
          Action end;
  
          public Scope(Action begin, Action end)
          {
              begin();
              this.end = end;
          }
  
          public void End()
          {
              end();
          }
  
          #region IDisposable Members
  
          void IDisposable.Dispose()
          {
              End();
          }
  
          #endregion
  </code></pre>