CCI与Mono.塞西尔——优点和缺点



我看到过一些文章讨论这两个类似的框架,但它们大多已有两年左右的历史。我认为这两个项目现在都比两年前成熟得多,情况也更复杂。

因此,考虑到每个图书馆的现状,我希望有人能详细解释每个图书馆的优点和缺点,以及目前应该优先选择哪一个。

CCI

优点:

  • 可以为您提供更细粒度的性能控制
  • 最新的版本稍微成熟一点

缺点:

  • 对象模型更复杂(如果你像我一样是IL/低级别反射的新手,也会感到困惑(

Cecil(指较新的github版本(

优点:

  • 具有更简单的对象模型,因此更容易上手

缺点:

  • 最新版本不太成熟,因此可用的代码示例较少
  • API是一项正在进行的工作
  • 您将无法控制名称缓存(对于perf(

我会选择哪个

综合利弊,我肯定会选择CCI而不是Cecil。但我不会。

Cecil是一个升级版,有一个简单的API设计,有一位活跃的作者(好吧,7.5个月前就做了,现在看起来仍然如此(,并且在我遇到的任何问题上都可以轻松调试。

CCI在编写代码时非常痛苦——基于接口的设计太过了。代码很难调试。有些东西乍一看似乎是完整的,但不是,或者不能处理超过一个用例。NameTable的东西让我晕头转向(比现在更让人晕头转向(。

Cecil-因为对我来说,社区对它的支持比CCI更好。对于cecil,我总是能更快地在邮件列表/网站上找到答案。

相关内容

  • 没有找到相关文章

最新更新