Podawanie literału obiektu do ILGeneratora

Food obj = ...;
ILGenerator gen = (...).GetILGenerator();
gen.Emit( ?? obj ?? ); // replace this 
gen.Emit(OpCodes.Call, typeof(Person).GetMethod("Eat"));

Najwyraźniej nie jest możliwe czyste wypchnięcie obj na stos oceny, ale jestem otwarty na brzydkie hacki, które mogą narazić na szwank np. ruchliwość. ModuleBuilder.DefineInitializedData umożliwia przechowywanie System.Byte [] w danych .sdata. Jakieś pomysły?

Edytuj: wygenerowana metoda jest emitowana jako część nowego zespołu.

questionAnswers(2)

yourAnswerToTheQuestion