2010/06/26

コマンドラインパーサー[NConsoler]

NConsolerは.NET用のコマンドライン パーサー ライブラリ。

コンソールアプリケーションを開発する際、コマンドライン引数の解析部分の実装に意外と時間を取られる。
NConsolerを使えばこの地味に面倒で煩雑になりがちなコマンドライン引数の解析をシンプル且つスマートに実装することができる。

NConsoler
http://nconsoler.csharpus.com/

[サンプル]
using System;
using NConsoler;

namespace NConsolerSample
{
    class Program
    {
        static void Main(string[] args)
        {
            Consolery.Run(typeof(Program), args);
        }

        [Action("実行する")]
        public static void DoWork(
            [Required(Description="件数:実行する件数を指定する")]int count,
            [Optional(false,Description="フラグ:フラグを指定する")]bool flag)
        {
            Console.WriteLine("DoWork {0} {1}", count, flag);
        }
    }
}



[実行例]

c:\NConsolerSample.exe 1
DoWork 1 False



↓Usageの表示も可能

c:\NConsolerSample.exe /?
実行する
usage: NConsolerSample count [/flag]
count    件数:実行する件数を指定する
[/flag]  フラグ:フラグを指定する

3 件のコメント:

  1. コンソールオプションがAction属性メソッドの引数に展開される点が特徴的ですね。

    似た機能を持つOSSとして「Command Line Parser Library」もあります。こちらの場合、コンソールオプションは引数格納用クラスのフィールドに展開されます。

    http://journal.mycom.co.jp/articles/2010/01/04/parser/index.html

    返信削除
  2. 情報ありがとうございます!!
    「Command Line Parser Library」記事も書かかれているんですね。

    aoki1210さんの書かれた記事のリンク一覧があれば教えていただきたいです。

    返信削除
  3. 私の書いた記事の一覧はこちらです。良かったら読んでみてください。

    http://d.hatena.ne.jp/aoki1210/about

    返信削除