title: Set value of private field
body: <p>Why is the following code not working:</p>
  
  <pre class="lang-c# prettyprint-override"><code>class Program
  {
      static void Main ( string[ ] args )
      {
          SomeClass s = new SomeClass( );
  
          s.GetType( ).GetField( "id" , System.Reflection.BindingFlags.NonPublic ) // sorry reasently updated to GetField from GetProperty...
              .SetValue( s , "new value" );
      }
  }
  
  
  class SomeClass
  {
      object id;
  
      public object Id 
      {
          get
          {
              return id;
          }
      }   
  }
  </code></pre>
  
  <p>I am trying to set the value of a private field.</p>
  
  <hr>
  
  <p>Here is the exeption I get:</p>
  
  <pre><code> System.NullReferenceException was unhandled   Message=Object reference not set to an instance of an object.   Source=ConsoleApplication7
   StackTrace:
          at Program.Main(String[] args) in C:\Users\Antonio\Desktop\ConsoleApplication7\ConsoleApplication7\Program.cs:line 18
          at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
          at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
          at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
          at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
          at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
          at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
          at System.Threading.ThreadHelper.ThreadStart()   InnerException:
  </code></pre>