【问题标题】:Self-modifying C# (MSIL) code?自修改 C# (MSIL) 代码?
【发布时间】:2013-06-29 04:53:11
【问题描述】:

如何使用 C#/.NET 动态修改内存中的 MSIL 代码?

是的,我真的很想替换现有的代码,这些代码已经在内存中。
具体来说,我不是

  • 只希望生成代码(通过表达式模板、ILGenerator 等)
  • 尝试发出一个新的二进制模块,以期稍后将其加载到内存中

【问题讨论】:

  • 据我所知,.net IL 不支持此功能。为什么需要这种特定场景?
  • 你为什么需要这个?
  • @newStackExchangeInstance:我无法真正讨论我正在从事的项目,我只能说拥有这种能力会有很大帮助。
  • @sheldo 鉴于 Mehrdad 正在谈论虚拟机运行时,其前提是易于修改的 IL 与 .NET 领域有关,这绝对是可能的。此外,使用 unsafe 和/或 Marshalled 调用,几乎没有什么是做不到的。

标签: c# code-generation reflection.emit ilgenerator


【解决方案1】:

.Net Profiling API 看起来很有希望。

否则,我很难过。

【讨论】:

  • 似乎需要本地代码...有没有办法从托管代码中做到这一点?
猜你喜欢
  • 1970-01-01
  • 2013-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 2014-02-06
相关资源
最近更新 更多