Uygulama yapılandırma dosyasından özel bilgileri depolamak ve almak için Visual C# kullanma

Bu makalede, daha sonra çalışma zamanında ilişkili uygulaması tarafından alınabilecek bir yapılandırma dosyasından özel bilgilerin nasıl depolanabileceği anlatılır. Bir uygulamayla ilişkili verileri tanımlamanız gerektiğinde yararlı olur.

Orijinal ürün sürümü: Visual C#
Özgün KB numarası: 815786

Gereksinimler

Aşağıdaki listede ihtiyacınız olan önerilen donanım ve yazılımlar özetlenmiştir:

  • Microsoft Windows
  • Visual C#

Bu makalede, aşağıdaki konulara aşina olduğunuz varsayılır:

  • Genişletilebilir biçimlendirme dili (XML)
  • .NET yapılandırma dosyaları

Yapılandırma dosyasını okuyan bir konsol uygulaması oluşturma

Uygulama ayarlarını, uygulamayla ilişkili yapılandırma dosyasında depolayabilirsiniz. Yapılandırma dosyaları XML biçiminde kaydedilir.

System.Configuration ve System.Collections.Specialized .NET Framework ad alanları, çalışma zamanında bir .NET uygulama yapılandırma dosyasından bilgi almak için gerekli sınıfları içerir.

Çalışma zamanında ilişkili bir yapılandırma dosyasının içeriğini okuyan bir konsol uygulaması oluşturmak için şu adımları izleyin:

  1. Visual Studio .NET veya Visual Studio'yu başlatın.

  2. Dosya menüsünde, Yeni'nin üzerine gelin ve Proje'yi seçin.

  3. Proje Türleri'nin altında Visual C# öğesini ve ardından Şablonlar'ın altında Konsol Uygulaması'nı seçin. Projeyi ConConfig olarak adlandırın. Varsayılan olarak, Visual C# Program adlı bir sınıf oluşturur.

    Not

    Visual Studio .NET'te Proje Türleri'nin altında Visual C# Projeleri'ne ve ardından Şablonlar'ın altında Konsol Uygulaması'nı seçin. Projeyi ConConfig olarak adlandırın. Varsayılan olarak, Visual C# Sınıf1 adlı bir sınıf oluşturur.

  4. Çözüm Gezgini penceresinin görünür olduğundan emin olun. Görünmüyorsa CTRL+ALT+L tuş bileşimine basın.

  5. Çözüm Gezgini proje adına sağ tıklayın, Ekle'yi ve ardından Yeni Öğe'yi seçin.

  6. Yeni Öğe Ekle listesinde XML Dosyası'nı seçin.

  7. Ad metin kutusuna App.configyazın ve Ekle'yi seçin.

  8. Anahtar/değer biçiminde kaydettiğiniz özel uygulama ayarlarını toplamak için bir uygulama yapılandırma dosyası kullanabilirsiniz. İlişkili bir yapılandırma dosyasının <appSettings> bölümüne öğeleri ekleyebilirsiniz<add>. Her anahtar/değer çifti bir <add> öğeye sahiptir. Bir <add> öğe aşağıdaki biçime sahiptir:

    <add key="Key0" value="0" />
    

    ve </configuration> etiketleri arasında <configuration> yapılandırma dosyasına öğeleri içeren <add> bir <appSettings> bölüm ekleyin.

    Örneğin, aşağıdaki yapılandırma dosyası üç anahtar/değer çiftini belirten bir <appSettings> bölüm içerir:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>
            <add key="Key0" value="0" />
            <add key="Key1" value="1" />
            <add key="Key2" value="2" />
        </appSettings>
    </configuration>
    
  9. Çözüm Gezgini'daProgram.cs çift tıklayarak kod penceresini görüntüleyin. Kod modülünüze aşağıdaki deyimleri ekleyin.

    Not

    Bu deyimler, dosyadaki diğer deyimlerden önce görünmelidir.

    using System.Configuration;
    using System.Collections.Specialized;
    
  10. Aşağıdaki adımları izleyerek System.Configuration.dll başvuru ekleyin:

    1. Proje menüsünde Başvuru Ekle'yi seçin.
    2. Başvuru Ekle iletişim kutusunda .NET sekmesini seçin.
    3. öğesinin Bileşen Adını System.Configurationbulun ve seçin.
    4. Tamam'ı seçin.
  11. Yapılandırma dosyasının bölümündeki bir yapılandırma dosyası anahtarındaki <appSettings> değeri tutmak için, bölümünde aşağıdaki gibi bir dize değişkeni Main bildirin:

    string sAttr;
    
  12. Yapılandırma dosyasının bölümünden <appSettings> belirtilen anahtarın değerini almak için sınıfının özelliğinin ConfigurationManager yöntemini AppSettings kullanınGet. ConfigurationManager sınıfı ad alanındadırSystem.Configuration. AppSettings.Get yöntemi anahtar içeren bir dize giriş parametresi aldığında, uygulama anahtarla ilişkili değeri alır.

    Aşağıdaki kod, ilişkili yapılandırma dosyasından özniteliğinin Key0 değerini alır. Kod daha sonra bu değeri dize değişkenine sAttr yerleştirir. Bu değer için bir anahtar yoksa içinde hiçbir şey depolanmaz sAttr.

    sAttr = ConfigurationManager.AppSettings.Get("Key0");
    
  13. Uygulamanın Konsol penceresinde alan değeri görüntülemek için aşağıdaki gibi kullanın Console.WriteLine :

    Console.WriteLine("The value of Key0 is "+sAttr);
    
  14. bölümündeki tüm anahtar/değer çiftlerini almak için özelliğine <appSettings> tek bir başvuru AppSettings kullanabilirsiniz. özelliğini kullandığınızda AppSettings , uygulama ilişkili tüm anahtar/değer çiftlerini döndürür. Bu çiftler bir NameValueCollection tür içinde depolanır. , NameValueCollection uygulamanın aldığı her anahtar için anahtar/değer girdileri içerir. NameValueCollection sınıfı ad alanındadırSystem.Collections.Specialized.

    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
    
  15. AllKeys özelliğinin NameValueCollection özelliği, uygulamanın aldığı her anahtar için bir girişi olan bir dize dizisine başvurur. Uygulamanın aldığından her anahtara erişmek için dizide AllKeys yineleme yapmak için bir foreach yapısı kullanın. içindeki AllKeys her anahtar girişi bir dize veri türüdür.

    Derlemenin foreach içinde, konsol penceresinde anahtarı ve ilişkili değerini görüntülemek için kullanın Console.WriteLine . Uygulamanın işlediği geçerli anahtar içindedir s. İlişkili değerini almak için dizininde sAllNameValueCollection dizin olarak kullanın.

     foreach (string s in sAll.AllKeys)
         Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s));
    
     Console.ReadLine();
    

Tam kod listesi

using System;
using System.Configuration;
using System.Collections.Specialized;

namespace ConConfig
{
    class Program
    {
        static void Main(string[] args)
        {
            string sAttr;

            // Read a particular key from the config file 
            sAttr = ConfigurationManager.AppSettings.Get("Key0");
            Console.WriteLine("The value of Key0: " + sAttr);

            // Read all the keys from the config file
            NameValueCollection sAll;
            sAll = ConfigurationManager.AppSettings;

            foreach (string s in sAll.AllKeys)
                Console.WriteLine("Key: " + s + " Value: " + sAll.Get(s));

            Console.ReadLine();
        }
    }
}

Not

Bu kod .NET Framework 2.0'a yöneliktir. .NET Framework 1.0 veya .NET Framework 1.1 kullanıyorsanız, sınıfının tüm örneklerini ConfigurationManager olarak ConfigurationSettingsdeğiştirin.

Tam yapılandırma dosyası listesi (ConConfig.exe.config)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="Key0" value="0" />
        <add key="Key1" value="1" />
        <add key="Key2" value="2" />
    </appSettings>
</configuration>

Çalıştığını doğrulayın

Kodu çalıştırmak için F5 tuşuna basın. Konsol penceresinde, ilişkili yapılandırma dosyasının bölümünde yer alan <appSettings> anahtar/değer çiftleri aşağıdaki gibi görüntülenmelidir:

The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2

Sorun giderme

  • Yapılandırma dosyası XML biçiminde kaydedilir. Tüm XML söz dizimi kurallarına uyduğunuzdan emin olun. XML'nin büyük/küçük harfe duyarlı olduğunu unutmayın. XML iyi biçimlendirilmemişse veya bir öğe yanlış yazılmışsa bir System.Configuration.Configuration özel durum alırsınız.

    Örneğin, bir öğenin anahtar özniteliğini <add> küçük harf k yerine büyük K harfiyle eklerseniz veya bölüm (küçük harf a yerine A büyük harfle) olarak <AppSettings> görünürse <appSettings> bir hata iletisi alırsınız.

  • Yapılandırma dosyasının ilişkili uygulamasıyla aynı klasöre kaydedilmesi gerekir.

  • Yapılandırma dosyası adı için aşağıdaki söz dizimini kullanmanız gerekir:
    <ApplicationName>.<ApplicationType>.config

    Burada <ApplicationName> , uygulamanın adıdır. <ApplicationType> , gibi .exebir uygulama türüdür. Ve .config gerekli sonektir.

Başvurular