NConsoler 介绍

NConsoler, 提供对命令行程序进行参数解析的功能, 开源项目.

类似的东西还有Mono.Options, NConsole(没找到代码), CodeProject.com上还有用正则表达式实现的...

NConsoler 使用很简便, 优雅, 与 AjaxPro 的接口风格有几分神似.
功能上考虑很全面, 对于参数的验证, 类型转换, 参数错误时返回友好的错误提示,输出帮助信息(即/?或-?)等方面都提供了快捷的支持.

最有特色的一点, 是把命令行程序的每一项功能抽象为一个Action,

举例说明下吧, 比如我们有个管理文件系统的命令行程序, 名为fm.exe (file manager)

>> fm /n foo.txt
>> fm /r foo.txt

上面的/n表示new, /r表示remove, 如果自己写代码, 需要写一个读取和判断不同参数的"路由"方法, 进而将调用分支到不同的功能中. 

如果用NConsoler来实现这个程序的入口, 我们可以只通过两个Action方法来实现. 示例:

[Action]
public static void New([Required] string filename){}

[Action]
public static void Remove([Required] string userName){}

那么在使用时稍作调整:
>> fm new foo.txt
>> fm remove foo.txt

如果在写命令行程序时, 还在自己手工做类似的轮子, 不妨借鉴.

posted @ 2009-06-30 22:42  sinlight23  阅读(538)  评论(1编辑  收藏  举报