据我所知,微软的或Roslyn项目是受Mono启发的。
但是,莫诺·塞西尔和NRefactory之间有什么关系呢?其中一个用另一个吗?或者他们是做同样事情的替代技术?
看起来,它们都提供了与Roslyn一样的大量代码分析服务。
发布于 2014-01-22 00:28:47
你有点误会。
Roslyn是一个私有项目,当时Mono正在将他们的C#编译器转换为一个服务(Mono.CSharp程序集)。如果你读了this post by Miguel,你就能更多地了解2008年发生的事情。
这两个消息碰巧是在同一个Microsoft事件上一起宣布的(首先是Anders's session,然后是Miguel's session)。因此,罗斯林与Mono.CSharp有一定的关系,但与Cecil没有关系。
微软确实有另一个类似于Cecil的项目,叫做CCI。
塞西尔是一个MSIL阅读器和作者,而NRefactory主要是C#解析器和C#框架。NRefactory依赖塞西尔作为stated in README,也依赖于Mono.CSharp。
但是我们应该看到,如果我们进行基于Cecil的代码分析,那么我们是在MSIL层上进行的,这种分析实际上适用于所有.NET语言(包括VB.NET、Oxygene等)。如果代码分析是基于NRefactory的,那么它更侧重于C#层。
现在应该避免将Mono位与Roslyn进行比较,因为我们不确定Roslyn在微软最后定稿和发布时的样子。对我来说,Roslyn应该等同于Mono上的一堆库(包括Cecil、NRefactory、Mono.CSharp和IKVM.Reflection)。
https://stackoverflow.com/questions/21270241
复制相似问题