LSL.DbConfigurationProvider 1.0.10

dotnet add package LSL.DbConfigurationProvider --version 1.0.10                
NuGet\Install-Package LSL.DbConfigurationProvider -Version 1.0.10                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LSL.DbConfigurationProvider" Version="1.0.10" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add LSL.DbConfigurationProvider --version 1.0.10                
#r "nuget: LSL.DbConfigurationProvider, 1.0.10"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install LSL.DbConfigurationProvider as a Cake Addin
#addin nuget:?package=LSL.DbConfigurationProvider&version=1.0.10

// Install LSL.DbConfigurationProvider as a Cake Tool
#tool nuget:?package=LSL.DbConfigurationProvider&version=1.0.10                

Build status Coveralls branch NuGet

LSL.DbConfigurationProvider

Provides a ConfigurationProvider that reads settings from a database table.

Configuring with the default settings

The following example sets up a DB configuration provider that fetches the settings from a table called Settings with a key field called Key and a value field called Value.

var builder = new ConfigurationBuilder();
builder.AddDbConfiguration(
    () => new SqlConnection("my-connection-string"));

Configuring with the custom settings

The following example sets up a DB configuration provider that fetches the settings from a table called OtherSettings with a key field called OtherKey and a value field called OtherValue.

var builder = new ConfigurationBuilder();
builder.AddDbConfiguration(
    () => new SqlConnection("my-connection-string"), 
    "OtherSettings", 
    "OtherKey", 
    "OtherValue");

Configuring with a key prefix

The following example sets up a DB configuration provider that only fetches settings whose keys are prefixed with the value of the keyPrefix parameter.

var builder = new ConfigurationBuilder();
builder.AddDbConfiguration(
    () => new SqlConnection("my-connection-string"), 
    keyPrefix: "my-application:");

All returned settings will have the prefix automatically removed from the key name.

Dealing with errors on load

An optional paramter onLoadError allows for the passing of a delegate to decide what to do when an error occurs on loading settings from the DB.

var builder = new ConfigurationBuilder();
builder.AddDbConfiguration(
    () => new SqlConnection("my-connection-string"), 
    onLoadError: context =>
    {
        Console.WriteLine(context.Exception.ToString());

        // NOTE: The following is not required really
        // as RethrowException defaults to false.
        // It is set here only to show that this is an option.
        context.RethrowException = false;
    });

onLoadError Context

The onLoadError delegate is passed a context that has the following members available:

Exception

This readonly property provides the exception that was thrown so that an error handler can act appropriately based on what was thrown.

RethrowException

This property defaults to false but can be set to true in order to throw an exception of type DbConfigurationProviderLoadException so that a consuming application can react to the problem and inspect the InnerException and act accordingly.

NOTE: The InnerException is the instance of the originally thrown exception.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.10 41 1/20/2025