【发布时间】:2010-09-14 03:47:08
【问题描述】:
我想知道是否有使用 CLI(通用语言基础结构)实现的 .NET 兼容 CLR,例如,使用 .NET 本身,或者至少是否有任何资源将有助于建造一个。
基本上,类似于 .NET 程序将程序集作为 MemoryStreams 加载、解析字节码、构造类型并执行指令。或者,它可以使用 Reflection.Emit 或然而 JIT 编译为标准 IL。
我不想编译 .NET 语言由原始 CLR 运行。我想要一个用 .NET 语言编写的 CLR(不是通常的非托管 C++ 或 C)运行 CIL。 如果操作正确,它应该能够自行运行。
对使用 Mono.Cecil 做这种事情有什么想法吗?
【问题讨论】:
-
但是……为什么?这似乎是一件很奇怪的事情,我想不出任何可能的用例。
-
@Davr:因为这样你就可以在 CLR 中运行 CLR!
-
@Davr 有很多与 AOP 相同的参数,但基于 CLR 的 CLR 也可以比普通 CLR 更“受管理”,因为它可以反射自身并进行修改,包括优化,用普通的旧 CLR 是不可能的。另外,它很酷。
-
我确实有一个用例:子集或重定向绑定到平台库,如 mscorlib。例如,将 DateTime.Now 暴露给不受信任的代码是一件坏事……
-
CLR 上的 CLR 上的 CLR...我想我只是有一个 Stack Overflow