将DynamicMethod保存到磁盘上

| 我继承了使用DynamicMethod在运行时生成方法的代码。我还需要修改一些正在生成的代码。 由于我是MSIL的n00b会员,所以我很希望能够将生成的代码加载到Reflector中,并确保该代码能够完成我祈祷的工作;) 只是,我不知道如何将“匿名托管的DynamicMethods程序集”序列化到磁盘。这可能吗?如果是这样,怎么办?     
已邀请:
        我认为,如果要在Reflector或dotPeek中加载该方法,则需要创建一个实际的程序集。为此,请使用“ 0”代替“ 1”。它们的大多数用法应相同。     
        尝试这个,
  var assemblyName = new AssemblyName(\"SomeName\");
  var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave, @\"c:\");
  var moduleBuilder = assemblyBuilder.DefineDynamicModule(assemblyName.Name, assemblyName.Name +  \".dll\");

  TypeBuilder builder = moduleBuilder.DefineType(\"Test\", TypeAttributes.Public);
  var methodBuilder = builder.DefineMethod(\"DynamicCreate\", MethodAttributes.Public, typeof(T), new[] { typeof(IDataRecord) }); 
  /* this line is a replacement for your  new DynamicMethod(....)  line of code

  /* GENERATE YOUR IL CODE HERE */

  var t = builder.CreateType();
  assemblyBuilder.Save(assemblyName.Name + \".dll\");
    

要回复问题请先登录注册