Mono Cecil和NRefactory之间的关系是什么,如何将它们与Roslyn进行比较?



我知道Microsoft的编译器作为服务或Roslyn项目的灵感来自Mono Cecil。

但是,单塞西尔和nrefactory之间有什么关系?一个使用另一个吗?还是它们是做同样事情的替代技术?

看来,他们俩都提供了相同的代码分析服务,就像罗斯林一样。

你有一些误解。

罗斯林(Roslyn)是一个私人项目,当时Mono Guys将其C#编译器转向服务(Mono.Charp Assembly)。如果您阅读了Miguel的这篇文章,您可以了解有关2008年发生的事情的更多信息。

这两个恰好在同一Microsoft PDC活动(Anders的会议首先,然后是Miguel的会议)中一起宣布。因此,罗斯林与Mono.Charp有一定的关系,但与Cecil没有关系。

Microsoft确实有另一个类似于Cecil的项目,称为CCI

Cecil是MSIL阅读器和作家,而Nrefactory主要是C#解析器和AST框架。Nrefactory取决于Readme中所述的Cecil以及Mono.csharp。

,但是我们应该看到,如果我们基于Cecil进行代码分析,我们在MSIL层上,并且此类分析实际上适用于所有.NET语言(包括VB.NET,Oxygene等)。如果代码分析基于Nrefactory,则更多地关注C#层。

现在应该避免将单声道与罗斯林进行比较,因为我们不确定罗斯林在由Microsoft完成和发布时的样子。对我来说,罗斯林应该等同于单声道上的一堆库(包括塞西尔,nrefactory,mono.csharp和ikvm.frection)。

最新更新