This article demonstrates how to change the content of an App.Config file at runtime. We know there are various ways to change the content of a config file. But here this article demonstrates one of the ways. This article opens the config file using a stream reader, reads the entire stream from start to end and displays the content into the text box. Then changes the content and saves the file having the same extension.
First, read the contents of an app.config file using stream reader and change the content then write the changed content into a file using a stream writer and save the file.
In the Browse button's click event use the following code to open the file and read the file's content.
private void Button_Click_1(object sender, RoutedEventArgs e)
{
OpenFileDialog OFD = new OpenFileDialog();
if (OFD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.txtFilename.Text = OFD.FileName;
this.FS = new FileStream(OFD.FileName, FileMode.Open, FileAccess.ReadWrite);
StreamReader SR = new StreamReader(FS);
string data = SR.ReadToEnd();
this.txtContent.Text = data;
FS.Flush();
FS.Dispose();
FS.Close();
}
}
The preceding first line of code uses an Open File Dialog Box. The Open File Dialog Box does not exist in WPF, to use an OpenFileDialog control you need to reference the System.Windows.Forms namespace. A OpenFileDialog box is used to get the path of the config file. Open the file using the FileStream class and read the stream using the StreamReader class as in the code above. The FileStream and StreamReader classes are available in the System.IO namespace. After retrieving the stream from the config file close and flush the StreamReader and FileStream classes, retrieve the string form the stream reader using the ReadToEnd function of the StreamReader class and set the text of the TextBox to the contents of the config file.
In the click event of the save button write the following code.
private void Button_Click_2(object sender, RoutedEventArgs e)
{
this.FS = new FileStream(txtFilename.Text.Trim(), FileMode.Truncate,
FileAccess.ReadWrite);
StreamWriter SW = new StreamWriter(this.FS);
SW.Write(this.txtContent.Text.Trim());
SW.Flush();
FS.Flush();
FS.Dispose();
FS.Close();
}
The preceding event opens the app.config file again and, using the stream writer, writes the changed text that is taken from text box into the app.config file.