Bagikan melalui


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 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

Keterangan

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

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

Nota

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

Anda dapat menggunakan jenis System.Configuration bawaan 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 menyertakan anggota yang memungkinkan Anda melakukan tugas berikut:

Catatan Bagi Inheritor

Kelas Configuration memungkinkan akses terprogram untuk mengedit file konfigurasi. Anda menggunakan salah satu metode Open yang disediakan oleh ConfigurationManager. Metode ini mengembalikan objek Configuration, 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 GetSection(String). Metode ini menyediakan akses ke nilai konfigurasi cache untuk aplikasi saat ini, yang memiliki performa yang lebih baik daripada kelas Configuration.

Untuk menulis ke file konfigurasi, gunakan salah satu metode Save. 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

Mendapatkan data AppSettingsSection untuk konfigurasi default aplikasi saat ini.

ConnectionStrings

Mendapatkan data ConnectionStringsSection untuk konfigurasi default aplikasi saat ini.

Metode

GetSection(String)

Mengambil bagian konfigurasi yang ditentukan untuk konfigurasi default aplikasi saat ini.

OpenExeConfiguration(ConfigurationUserLevel)

Membuka file konfigurasi untuk aplikasi saat ini sebagai objek Configuration.

OpenExeConfiguration(String)

Membuka file konfigurasi klien yang ditentukan sebagai objek Configuration.

OpenMachineConfiguration()

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

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean)

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

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel)

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

OpenMappedMachineConfiguration(ConfigurationFileMap)

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

RefreshSection(String)

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

Berlaku untuk

Lihat juga