
LeightWeight Command Line Parser
Optionlar
Optionlar yapılacak parse işlemi için ayarlamaları kapsamaktadır. Burada parse edilen argumentin değeri alınarak oluşturulan Option classında property lere aktarım kuralı belirlenir.
Her Option belli bir görevi yerine getirmek için tanımlanmalıdır daha fazlasını değil. Yani Optionlar birbiriyle bağlantılı olmamalıdır. Option içerisinde tanımladığınız method sadece Option içerisinde tanımladığınız property leri kullanmalıdır. Global değişkenler olmamalı.
Argumentler
Argumentler Option içerisindeki Property ve Methodları temsil etmektedir. Option içerisindeki her bir property de parse işleminde alınan argument değeri tutulur yada parse işleminde alınan argument bir mothoda denk geliyorsa Method işletilir.
Örnek Kullanım
Option Tanımlama
Aşağıda EDönüşüm için yazmış olduğum CLI uygulamasının örnek bir Option classı yer almaktadır. Bu Option sadece entegratörden bir token almak için yazılmıştır. Başka bir işlevi yoktur.
Şimdi bu Optiona biraz yakından bakalım. Öncelikle OnGetToken() methodumda kullanacağım property leri tanımladım. Oluşturulan method bir değer döndürmemektedir. Çünkü bu Option sadece bir işi yapması için yazıldı ve sadece giren değerler bulunmakta.
Oluşturduğum classın bir Option olmasını sağlayan özellikler ise Attributelerdedir. Attributeler Parse edilen Argumentler ile Option classım arasındaki bağlantıyı sağlamaktadır. Yani attributeler property lerimin metadataları diyebiliriz.
Uygulama
Kullanım için ilk yapılaması gereken consol uygulamasının Main methodunda CommandLineParser sınıfından bir class üretmektir. Bu parser classına, program çalıştırıldığında gelen args parametresini ve işleteceğim Option classlarımı tanıtıyorum.
Bu classın görevi Parse işlemini yapmadan önce Option classlarından metadataları okumak. Çünkü birazdan bu metadata ları kullanarak gelen argument değerlerini Option class içerisindeki propertylere yazacak.
Run methodu artık parse işlemini yapabilirsin anlamına gelmektedir. Elimde olan metadata verileri ile Option classlarının içerisindeki propertyler doldurulur ve uygun bir Option methodunu yakaladığında bu methodu çalıştırır.

Örnek Kullanım

Örnek Kullanım 2
