CSharp - C# 为什么发布编译代码注入比预编译代码注入更好?

  显示原文与译文双语对照的内容

所以我们都知道 C# 没有像宏前处理器( 这里有一个很好的线索,为什么在这里。) 那样的c 。 但现在,AOP正在获得牵引,似乎我们开始与处理器( 记住,我只能用 PostSharp,所以我可能 off base ) 进行事件处理。

我是 C#的一个巨大风扇,但是如果预先处理器出错,为什么( 但是,作为一个以前的MFC用户,我仍然会接受但仍然接受) 注入代码注入比编译代码更好。

时间: 原作者:

我在设计图表 5年前选择后编译的原因是:

  • 语言 agnosticism 。
  • 高级语言( 每秒都有非平凡的更新) 相比,MSIL具有更稳定的规范。
  • 大多数时候,MSIL是处理方面时所需要的抽象级别。 你不需要知道( 想象一下'使用'还有'的所有等价构造。
  • 在 2008年之前,没有人成功地制作了一。 Mono遇到的困难令人印象深刻,即使它们现在已经被捕获了。
  • 处理二进制代码似乎比处理源代码快得多。
  • 处理二进制程序集使得执行它成为可能;正在处理的程序集可以自身解密。 在老挝首次发布之前,it被 unheard 。

也就是说,C/C++的AOP实现实际上是一个预编译器( WeaveC ),Java中的实现是一个编译器扩展( 很好的理由是Java编译器有许多 操作系统 实现) 。

-gael

...