ConfigurationManager Kelas

Definisi

Menyediakan akses ke file konfigurasi untuk aplikasi klien. Kelas ini tidak dapat diwariskan.

public ref class ConfigurationManager abstract sealed
public static class ConfigurationManager
type ConfigurationManager = class
Public Class ConfigurationManager
Warisan
ConfigurationManager

Contoh

Contoh pertama menunjukkan aplikasi konsol sederhana yang membaca pengaturan aplikasi, menambahkan pengaturan baru, dan memperbarui pengaturan yang ada.

using System;  
using System.Configuration;  

namespace ConsoleApplication1  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            ReadAllSettings();  
            ReadSetting("Setting1");  
            ReadSetting("NotValid");  
            AddUpdateAppSettings("NewSetting", "May 7, 2014");  
            AddUpdateAppSettings("Setting1", "May 8, 2014");  
            ReadAllSettings();  
        }  

        static void ReadAllSettings()  
        {  
            try  
            {  
                var appSettings = ConfigurationManager.AppSettings;  

                if (appSettings.Count == 0)  
                {  
                    Console.WriteLine("AppSettings is empty.");  
                }  
                else  
                {  
                    foreach (var key in appSettings.AllKeys)  
                    {  
                        Console.WriteLine("Key: {0} Value: {1}", key, appSettings[key]);  
                    }  
                }  
            }  
            catch (ConfigurationErrorsException)  
            {  
                Console.WriteLine("Error reading app settings");  
            }  
        }  

        static void ReadSetting(string key)  
        {  
            try  
            {  
                var appSettings = ConfigurationManager.AppSettings;  
                string result = appSettings[key] ?? "Not Found";  
                Console.WriteLine(result);  
            }  
            catch (ConfigurationErrorsException)  
            {  
                Console.WriteLine("Error reading app settings");  
            }  
        }  

        static void AddUpdateAppSettings(string key, string value)  
        {  
            try  
            {  
                var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  
                var settings = configFile.AppSettings.Settings;  
                if (settings[key] == null)  
                {  
                    settings.Add(key, value);  
                }  
                else  
                {  
                    settings[key].Value = value;  
                }  
                configFile.Save(ConfigurationSaveMode.Modified);  
                ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);  
            }  
            catch (ConfigurationErrorsException)  
            {  
                Console.WriteLine("Error writing app settings");  
            }  
        }  
    }  
}  
Imports System.Configuration  
Module Module1  

    Sub Main()  
        ReadAllSettings()  
        ReadSetting("Setting1")  
        ReadSetting("NotValid")  
        AddUpdateAppSettings("NewSetting", "May 7, 2014")  
        AddUpdateAppSettings("Setting1", "May 8, 2014")  
        ReadAllSettings()  
    End Sub  

    Sub ReadAllSettings()  
        Try  
            Dim appSettings = ConfigurationManager.AppSettings  

            If appSettings.Count = 0 Then  
                Console.WriteLine("AppSettings is empty.")  
            Else  
                For Each key As String In appSettings.AllKeys  
                    Console.WriteLine("Key: {0} Value: {1}", key, appSettings(key))  
                Next  
            End If  
        Catch e As ConfigurationErrorsException  
            Console.WriteLine("Error reading app settings")  
        End Try  
    End Sub  

    Sub ReadSetting(key As String)  
        Try  
            Dim appSettings = ConfigurationManager.AppSettings  
            Dim result As String = appSettings(key)  
            If IsNothing(result) Then  
                result = "Not found"  
            End If  
            Console.WriteLine(result)  
        Catch e As ConfigurationErrorsException  
            Console.WriteLine("Error reading app settings")  
        End Try  
    End Sub  

    Sub AddUpdateAppSettings(key As String, value As String)  
        Try  
            Dim configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)  
            Dim settings = configFile.AppSettings.Settings  
            If IsNothing(settings(key)) Then  
                settings.Add(key, value)  
            Else  
                settings(key).Value = value  
            End If  
            configFile.Save(ConfigurationSaveMode.Modified)  
            ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name)  
        Catch e As ConfigurationErrorsException  
            Console.WriteLine("Error writing app settings")  
        End Try  
    End Sub  

End Module  

Contoh sebelumnya mengasumsikan proyek Anda memiliki file App.config seperti yang ditunjukkan di bawah ini.

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
    <startup>   
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />  
    </startup>  
  <appSettings>  
    <add key="Setting1" value="May 5, 2014"/>  
    <add key="Setting2" value="May 6, 2014"/>  
  </appSettings>  
</configuration>  

Contoh berikut menunjukkan cara menggunakan string koneksi untuk membaca data dari database.

using System;  
using System.Configuration;  
using System.Data.SqlClient;  

namespace ConsoleApplication1  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            ReadProducts();  
        }  

        static void ReadProducts()  
        {  
            var connectionString = ConfigurationManager.ConnectionStrings["WingtipToys"].ConnectionString;  
            string queryString = "SELECT Id, ProductName FROM dbo.Products;";  
            using (var connection = new SqlConnection(connectionString))  
            {  
                var command = new SqlCommand(queryString, connection);  
                connection.Open();  
                using (var reader = command.ExecuteReader())  
                {  
                    while (reader.Read())  
                    {  
                        Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));  
                    }  
                }  
            }  
        }  
    }  
}  
Imports System.Configuration  
Imports System.Data.SqlClient  
Module Module1  

    Sub Main()  
        ReadProducts()  
    End Sub  

    Sub ReadProducts()  
        Dim connectionString = ConfigurationManager.ConnectionStrings("WingtipToys").ConnectionString  
        Dim queryString = "SELECT Id, ProductName FROM dbo.Products;"  
        Using connection As New SqlConnection(connectionString)  
            Dim command = New SqlCommand(queryString, connection)  
            connection.Open()  

            Using reader As SqlDataReader = command.ExecuteReader()  
                While reader.Read()  
                    Console.WriteLine(String.Format("{0}, {1}", reader(0), reader(1)))  
                End While  
            End Using  
        End Using  
    End Sub  

End Module  

Contoh sebelumnya mengasumsikan proyek Anda memiliki App.config seperti yang ditunjukkan di bawah ini.

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
    <startup>   
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />  
    </startup>  
    <connectionStrings>  
      <add name="WingtipToys" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=WingtipToys;Integrated Security=True;Pooling=False" />  
    </connectionStrings>  
</configuration>  

Keterangan

Kelas ini ConfigurationManager memungkinkan Anda mengakses informasi komputer, aplikasi, dan konfigurasi pengguna. Kelas ini menggantikan ConfigurationSettings kelas , yang tidak digunakan lagi. Untuk aplikasi web, gunakan WebConfigurationManager kelas .

Untuk menggunakan ConfigurationManager kelas , proyek Anda harus mereferensikan assembly System.Configuration . Secara default, beberapa templat proyek, seperti Aplikasi Konsol, tidak mereferensikan perakitan ini sehingga Anda harus mereferensikannya secara manual.

Catatan

Nama dan lokasi file konfigurasi aplikasi bergantung pada host aplikasi. Untuk informasi selengkapnya, lihat Mengonfigurasi Aplikasi dengan menggunakan File Konfigurasi.

Anda dapat menggunakan jenis bawaan System.Configuration atau berasal darinya untuk menangani informasi konfigurasi. Dengan menggunakan jenis ini, Anda dapat bekerja langsung dengan informasi konfigurasi dan Anda dapat memperluas file konfigurasi untuk menyertakan informasi kustom.

Kelas ConfigurationManager ini mencakup anggota yang memungkinkan Anda melakukan tugas-tugas berikut:

Catatan Bagi Inheritor

Kelas ini Configuration memungkinkan akses terprogram untuk mengedit file konfigurasi. Anda menggunakan salah satu metode yang Open disediakan oleh ConfigurationManager. Metode ini mengembalikan Configuration objek, yang pada gilirannya menyediakan metode dan properti yang diperlukan untuk menangani file konfigurasi yang mendasar. Anda dapat mengakses file-file ini untuk membaca atau menulis.

Untuk membaca file konfigurasi, gunakan GetSection(String) atau GetSectionGroup(String). Pengguna atau proses yang membaca harus memiliki izin berikut:

  • Izin baca pada file konfigurasi pada tingkat hierarki konfigurasi saat ini.

  • Membaca izin pada semua file konfigurasi induk.

Jika aplikasi Anda memerlukan akses baca-saja ke konfigurasinya sendiri, kami sarankan Anda menggunakan metode ini GetSection(String) . Metode ini menyediakan akses ke nilai konfigurasi cache untuk aplikasi saat ini, yang memiliki performa yang lebih baik daripada Configuration kelas .

Untuk menulis ke file konfigurasi, gunakan salah Save satu metode . Pengguna atau proses yang menulis harus memiliki izin berikut:

  • Izin tulis pada file konfigurasi dan direktori pada tingkat hierarki konfigurasi saat ini.

  • Membaca izin pada semua file konfigurasi.

Properti

AppSettings

AppSettingsSection Mendapatkan data untuk konfigurasi default aplikasi saat ini.

ConnectionStrings

ConnectionStringsSection Mendapatkan data untuk konfigurasi default aplikasi saat ini.

Metode

GetSection(String)

Mengambil bagian konfigurasi tertentu untuk konfigurasi default aplikasi saat ini.

OpenExeConfiguration(ConfigurationUserLevel)

Membuka file konfigurasi untuk aplikasi saat ini sebagai Configuration objek.

OpenExeConfiguration(String)

Membuka file konfigurasi klien yang ditentukan sebagai Configuration objek.

OpenMachineConfiguration()

Membuka file konfigurasi komputer pada komputer saat ini sebagai Configuration objek.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel)

Membuka file konfigurasi klien yang ditentukan sebagai Configuration objek yang menggunakan pemetaan file dan tingkat pengguna yang ditentukan.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean)

Membuka file konfigurasi klien yang ditentukan sebagai Configuration objek yang menggunakan opsi pemetaan file, tingkat pengguna, dan pramuat yang ditentukan.

OpenMappedMachineConfiguration(ConfigurationFileMap)

Membuka file konfigurasi komputer sebagai Configuration objek yang menggunakan pemetaan file yang ditentukan.

RefreshSection(String)

Menyegarkan bagian bernama sehingga kali berikutnya diambil, bagian tersebut akan dibaca ulang dari disk.

Berlaku untuk

Lihat juga