Skip to content

Commit

Permalink
Add markdown readme for System.Configuration.ConfigurationManager (#7…
Browse files Browse the repository at this point in the history
…2772)

* Update System.Configuration.ConfigurationManager.csproj

Co-authored-by: Dan Moseley <[email protected]>
  • Loading branch information
MSDN-WhiteKnight and danmoseley authored Aug 22, 2022
1 parent b966a10 commit 6b3f3e9
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
## About

Provides types that support using XML configuration files (`app.config`). This package exists only to support migrating existing .NET Framework code that already uses System.Configuration. When writing new code, use another configuration system instead, such as [Microsoft.Extensions.Configuration](https://www.nuget.org/packages/Microsoft.Extensions.Configuration/).

For more information, see the documentation:

- [Configure apps by using configuration files](https://docs.microsoft.com/dotnet/framework/configure-apps/)
- [System.Configuration namespace](https://docs.microsoft.com/dotnet/api/system.configuration)
- [System.Configuration.Configuration](https://docs.microsoft.com/dotnet/api/system.configuration.configuration)
- [System.Configuration.ConfigurationManager](https://docs.microsoft.com/dotnet/api/system.configuration.configurationmanager)

## Example

The following example shows how to read and modify the application configuration settings.

```cs
using System;
using System.Configuration;

class Program
{
static void Main()
{
try
{
// Open current application configuration
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationCollection section = config.AppSettings.Settings;

// Print settings from configuration file
foreach (string key in section.AllKeys)
{
Console.WriteLine($"{key}: {section[key].Value}");
}

// Add new setting
section.Add("Database", "TestDatabase");

// Change existing setting
section["Username"].Value = "TestUser";

// Save changes to file
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(config.AppSettings.SectionInformation.Name);
}
catch (ConfigurationErrorsException ex)
{
Console.WriteLine("Error reading configuration: ");
Console.WriteLine(ex.Message);
}
}
}
```

To run this example, include an `app.config` file with the following content in your project:

```xml
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Server" value="example.com"/>
<add key="Username" value="Admin"/>
</appSettings>
</configuration>
```
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,8 @@
<IsTrimmable>false</IsTrimmable>
<NoWarn>$(NoWarn);CA1847</NoWarn>
<IsPackable>true</IsPackable>
<PackageDescription>Provides types that support using configuration files.

Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager</PackageDescription>
<PackageDescription>Provides types that support using XML configuration files (app.config). This package exists only to support migrating existing .NET Framework code that already uses System.Configuration. When writing new code, use another configuration system instead, such as Microsoft.Extensions.Configuration.</PackageDescription>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<!-- DesignTimeBuild requires all the TargetFramework Derived Properties to not be present in the first property group. -->
Expand Down Expand Up @@ -292,4 +289,8 @@ System.Configuration.ConfigurationManager</PackageDescription>
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
<Reference Include="System.Configuration" />
</ItemGroup>

<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\"/>
</ItemGroup>
</Project>

0 comments on commit 6b3f3e9

Please sign in to comment.