Передача литерала объекта в 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. Есть идеи?
Редактировать: сгенерированный метод испускается как часть новой сборки.