为什么Mono.GetOptions已经过时了?

时间:2010-01-03 22:36:47

标签: c# mono

Mono.GetOptions包已经过时,但似乎没有任何东西可以替代它。文档指向NDesk.Options,但NDesk自己的网页声称选项不稳定。为什么GetOptions已经过时,计划更换它?

2 个答案:

答案 0 :(得分:12)

Mono.GetOptions已经过时了,因为它的作者已经从地球上消失了,没有人加紧志愿参与未来的维护工作。这就是它的缺失。

NDesk.Options / Mono.Options“不稳定”,因为API实际上是不稳定的 - 如果认为合适,我保留以不兼容的方式更改公共API的权利。 (我希望我不需要,但我保留了这一点。)那就是说,我仍然在,所以它被维护(或能够被维护)。

这就是Mono.Options作为 source 分发的原因 - 如果API发生变化,那就无所谓了,因为你有一个 copy 的源捆绑了你的计划。 (这也是NDesk.Options.dll未签名的原因 - 因此它不会被放置在GAC中,因为GAC中的程序集强烈假设它们不会以不兼容的方式更改API。)

答案 1 :(得分:9)

NDesk.Options是稳定的 - 以至于它现在被称为Mono.Options与Mono 2.2及更高版本捆绑在一起。这是推荐的替代品。它被打包为单个.cs文件而不是单独的程序集,所以它不容易找到。

我不清楚为什么Mono.GetOptions被弃用了,但反对它的一个论点是它是重量级的;它要求您定义自己的类继承自其Options类和自由的属性。