Сгенерированный код Open Emitted сборки отображается пустым в Reflector, когда это не так.

Я ' m генерирует динамическую сборку с помощью Reflection.Emit, которая включает один класс. У меня есть ошибка, которая вызывает исключение BadImageException. Чтобы решить эту проблему, мне нужно увидеть скомпилированный код, и поэтому я сохраняю динамическую сборку на диск.

Я уже пробовал PEVerify для сборки, которая, похоже, считает, что ошибок нет. Теперь я хочу просмотреть сгенерированный код в Reflector, но сборка выглядит пустой (я знаю, что это не так).

Есть идеи, почему это происходит?

var assemblyName = new AssemblyName("An.Assembly");
var appDomain = Thread.GetDomain();
var assemblyBuilder = appDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave);
var moduleBuilder = assemblyBuilder.DefineDynamicModule(assemblyName.Name);
var typeBuilder = moduleBuilder.DefineType("MyClass", TypeAttributes.Public | TypeAttributes.Class);
... 
typeBuilder.CreateType();
assemblyBuilder.Save("temp.dll");

Кстати, я уже использую Relection.Emit плагин для отражателя, который не помогает с этой проблемой.

6
задан Michael Durrant 11 September 2011 в 19:54
поделиться