ConfigurationManager Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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:
Baca bagian dari file konfigurasi. Untuk mengakses informasi konfigurasi, panggil metode GetSection. Untuk beberapa bagian seperti
appSettings
danconnectionStrings
, gunakan kelas AppSettings dan ConnectionStrings. Anggota ini melakukan operasi baca-saja, menggunakan satu instans konfigurasi cache, dan sadar multithread.Membaca dan menulis file konfigurasi secara keseluruhan. Aplikasi Anda dapat membaca dan menulis pengaturan konfigurasi di tingkat apa pun, untuk itu sendiri atau untuk aplikasi atau komputer lain, secara lokal atau jarak jauh. Gunakan salah satu metode yang disediakan oleh kelas ConfigurationManager untuk membuka file konfigurasi seperti SampleApp.exe.config. Metode ini mengembalikan objek Configuration yang pada gilirannya mengekspos metode dan properti yang dapat Anda gunakan untuk bekerja dengan file konfigurasi terkait. Metode melakukan operasi baca atau tulis dan membuat data konfigurasi setiap kali file ditulis.
Mendukung tugas konfigurasi. Jenis berikut digunakan untuk mendukung berbagai tugas konfigurasi:
Selain bekerja dengan informasi konfigurasi yang ada, Anda dapat membuat dan bekerja dengan elemen konfigurasi kustom dengan memperluas jenis konfigurasi bawaan seperti kelas ConfigurationElement, ConfigurationElementCollection, ConfigurationProperty, dan ConfigurationSection. Untuk contoh cara memperluas jenis konfigurasi bawaan secara terprogram, lihat ConfigurationSection. Untuk contoh cara memperluas jenis konfigurasi bawaan yang menggunakan model berbasis atribut, lihat ConfigurationElement.
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. |