Kug*_*uBu 1 c# reflection.emit
我的程序随时创建新方法(使用MethodBuilderwith byte\IL数组),它执行一次并丢弃对它们的引用.我发现他们实际上并没有受到GC的影响.有没有办法让GC收集或处理它们?
我发现问题是要创建新方法,需要加载它后面无法卸载的程序集.我需要在主appdomain上运行这些方法.(它创建对象或修改一些对象)是否有替代方法MethodBuilder并且只执行那些byte\IL?
DynamicMethod如果您只需要发出一个可以在以后进行垃圾回收的方法,请使用.来自文档:
定义并表示可以编译,执行和丢弃的动态方法.丢弃的方法可用于垃圾收集.
如果需要动态构建类型,则需要为其定义可以收集的动态程序集.要使用AssemblyBuilder.DefineDynamicAssembly该AssemblyBuilderAccess.RunAndCollect选项,请执行此操作.您可以在此处详述的可收集装配中执行一些限制.