Передача литерала объекта в ILGenerator

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

Это'Очевидно, что невозможно просто вставить obj в стек оценки, но я открыт для отвратительных взломов, которые могут скомпрометировать, например, портативность. ModuleBuilder.DefineInitializedData позволяет хранить System.Byte [] в .sdata. Есть идеи?

Редактировать: сгенерированный метод испускается как часть новой сборки.

Ответы на вопрос(2)

Ваш ответ на вопрос