Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add markdown readme for System.Configuration.ConfigurationManager #72772

Merged
merged 8 commits into from
Aug 22, 2022
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`). Only use this package when migrating the existing .NET Framework code that already uses XML configuration. When writing a new code, use [Microsoft.Extensions.Configuration](https://www.nuget.org/packages/Microsoft.Extensions.Configuration/) instead.

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). Only use this package when migrating the existing .NET Framework code that already uses XML configuration. When writing a new code, use Microsoft.Extensions.Configuration instead.</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 @@ -278,4 +275,8 @@ System.Configuration.ConfigurationManager</PackageDescription>
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
<Reference Include="System.Configuration" />
</ItemGroup>

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