20

我看过讨论这两个类似框架的文章,但大多数都是两年左右的时间。我认为这两个项目现在都比两年前成熟得多,情况也更加复杂。

因此,鉴于每个库的当前状态,我希望有人可以详细解释每个库的优缺点,目前应该首选哪个。

4

2 回答 2

12

CCI

优点:

  • 可以让你更细粒度地控制你的表现
  • 最新版本更成熟一点

缺点:

  • 对象模型更复杂(如果您像我一样不熟悉 IL/低级反射,则会感到困惑)

Cecil(指较新的 git-hub 版本

优点:

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

缺点:

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

我会选择哪个

计算利弊,看起来我肯定会选择 CCI 而不是 Cecil。但我不会。

Cecil 正在崭露头角,拥有简单的 API 设计,拥有活跃的作者身份(嗯,7.5 个月前做过,现在似乎仍然如此),并且可以轻松调试我遇到的任何问题。

CCI 编写代码非常痛苦——基于接口的设计太过分了。代码很难调试。有些事情乍一看似乎是完整的,但实际上并不完整,或者只处理一个用例。 这些NameTable东西让我头晕目眩(比现在还多)。

于 2011-09-17T15:22:15.403 回答
1

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

于 2011-07-20T12:52:06.453 回答