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 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:
Membaca bagian dari file konfigurasi. Untuk mengakses informasi konfigurasi, panggil GetSection metode . Untuk beberapa bagian seperti
appSettings
dan , gunakan AppSettings kelas dan ConnectionStringsconnectionStrings
. Anggota ini melakukan operasi baca-saja, menggunakan satu instans konfigurasi yang di-cache, dan sadar multithread.Membaca dan menulis file konfigurasi secara keseluruhan. Aplikasi Anda dapat membaca dan menulis pengaturan konfigurasi pada tingkat apa pun, untuk itu sendiri atau untuk aplikasi atau komputer lain, secara lokal atau jarak jauh. Gunakan salah satu metode yang disediakan oleh ConfigurationManager kelas untuk membuka file konfigurasi seperti SampleApp.exe.config. Metode ini mengembalikan Configuration objek 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 ConfigurationElementkelas , , ConfigurationElementCollectionConfigurationProperty, 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 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. |