我怎样才能修改内存加载的方法在给定的程序集,以便clr实例化新对象的某些类时,它使修改后的代码中的新对象?在运行时修改程序集?
2
A
回答
1
我不认为你可以做到这一点。但是您可以使用Reflection.Emit在新内存程序集中生成新类。
虽然这是很多工作。您可以从框架(如Castle DynamicProxy)获得帮助,该框架允许您在运行时为您的类生成代理。这样,您可以在原始方法运行之前或之后运行任何代码,或者通过不调用原始方法来完全更改方法。
3
在加载之前,您可以使用Mono Cecil来修改程序集。
您可以将修改后的程序集保存到字节数组,然后调用Assembly.Load
来加载字节数组。
相关问题
- 1. 修改正在运行的python程序
- 2. 在运行时修改Vtable
- 3. 在运行时修改
- 4. 在运行时修改propertyGrid
- 5. 在运行时修改persistence.xml
- 6. 在运行时修改persistence.xml
- 7. 在其他运行时编译程序集Rreference运行时编译程序集
- 8. 修改的app.config <System.Diagnostics程序>在运行时
- 9. 在grails应用程序运行时修改groovy代码
- 10. 在运行时修改Android应用程序
- 11. Install4j:如何在运行时复制和修改启动程序
- 12. 在运行时加载的程序集
- 13. .net在运行时重装程序集
- 14. 在运行时加载程序集
- 15. 运行Roslyn脚本时未在运行时发现程序集
- 16. 运行时修改strings.xml
- 17. PHP运行时类修改
- 18. 在运行时更改.Net程序集名称
- 19. 在运行时创建jrxml文件并在运行时修改
- 20. 运行时错误“无法修改非左值子程序”
- 21. WSO2修改正在运行的进程
- 22. 在运行时创建/修改枚举
- 23. 在运行时修改innerhtml属性
- 24. 在运行时修改simulink模型
- 25. 在运行时修改actionBar的外观
- 26. 在运行时动态修改块
- 27. 在运行时扩展/修改NHibernate类
- 28. ItemsControl的在运行时修改
- 29. PHP在运行时修改suhosin设置
- 30. 在运行时修改导轨模型
我宁可不使用第三方库 – 2010-06-09 17:45:50
好的,然后放弃,或从头开始重写Mono Cecil。没有替代。 – SLaks 2010-06-09 17:59:16