Bu aralar yoğunluktan dolayı Divid projesini askıya almış olsamda hem Divid için hemde genelde kullanmak istediğim bir süredir aklımda olan bir ayar yönetim sınıfı yazmaya yavaş yavaş başladım.
Bu sınıf için C# dilinde kullanılan ConfigurationManager (http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager%28v=vs.80%29) sınıfından esinlendiğimi söylemeliyim. Bildiğim kadarıyla bu sınıfın asıl yaptığı xml tabanlı ve programAdi.config uzantılı bir dosyayı yönetmek ve bunun için yararlı ve kolay olanaklar sunmak. XML dosyası anahtar (key) ve deger (value) çiftlerinden oluşan özel bir yapıda, ConfigurationManager sınıfı sayesinde anahtarları kullanarak değerlere hızlı ve kolay bir şekilde ulaşmak mümkün oluyor.
Ben bu yapının benzerini D için kurmak niyetindeyim. programAdi.config dosyası yerine programAdi.ayar dosyası ve xml mimarisi yerine json kullanmayı hedefliyorum. Anahtar-değer çiftlerini saklamak için eşleme tablolarından faydalanmak niyetindeyim. Daha iyi öneriler varsa onlarada açığım :)
Neyse soruma gelirsem, AyarAnahtar isimli bir niteliğim var ve bir eşleme tablosu döndürüyor ama bu işlemi bir türlü başaramadım. Sınıf ve main metodları şöyle
module AyarYonetici;
public class AyarYonetici
{
private string[string] ayarTablosu = ["anahtar1": "deger1",
"anahtar2": "deger2",
"anahtar3": "deger3"];
public this()
{
//
}
@property string[string] AyarAnahtari() const
{
return ayarTablosu;
}
}
Bu sınıfı test etmek için kullandığım kodlar şöyle;
import std.stdio;
import AyarYonetici;
void main()
{
AyarYonetici ayar = new AyarYonetici();
string deger = ayar.AyarAnahtari["anahtar2"];
writefln("Anahtar2'nin değeri : %s", deger);
writeln("Başarıyla Bitti");
}
Derlemeye çalıştığımda şu hatayı alıyorum ;
Alıntı:
>zafer@debian:~/projeD/AyarModulu$ dmd -w -wi main.d AyarYonetici.d
AyarYonetici.d(15): Error: cannot implicitly convert expression (this.ayarTablosu) of type const(immutable(char)[][string]) to string[string]
zafer@debian:~/projeD/AyarModulu$
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]