title: Feeding an object literal to ILGenerator
body: <pre><code>Food obj = ...;
  ILGenerator gen = (...).GetILGenerator();
  gen.Emit( ?? obj ?? ); // replace this 
  gen.Emit(OpCodes.Call, typeof(Person).GetMethod("Eat"));
  </code></pre>
  
  <p>It's apparently not possible to cleanly push obj onto the evaluation stack, but I am open to ugly hacks which might compromise e.g. portability. ModuleBuilder.DefineInitializedData allows one to store a System.Byte[] in the .sdata. Any ideas?</p>
  
  <p>Edit: the generated method is being emitted as part of a new assembly.</p>