SparkyTools.XmlConfig 1.1.1

Install-Package SparkyTools.XmlConfig -Version 1.1.1
dotnet add package SparkyTools.XmlConfig --version 1.1.1
<PackageReference Include="SparkyTools.XmlConfig" Version="1.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SparkyTools.XmlConfig --version 1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SparkyTools.XmlConfig, 1.1.1"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install SparkyTools.XmlConfig as a Cake Addin
#addin nuget:?package=SparkyTools.XmlConfig&version=1.1.1

// Install SparkyTools.XmlConfig as a Cake Tool
#tool nuget:?package=SparkyTools.XmlConfig&version=1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

see also:

ConfigurationSectionDeserializer / ConfigurationSectionListDeserializer

These classes makes it easy to load a strongly-typed object (or IList of objects) from a custom web.config or app.config file section without having to write a custom IConfigurationSectionHandler implementation.

In the .config file, register each custom section with a type of "SparkyTools.XmlConfig.ConfigurationSectionDeserializer" or "SparkyTools.XmlConfig.ConfigurationSectionListDeserializer":

    <section name="Foo" type="SparkyTools.XmlConfig.ConfigurationSectionDeserializer, SparkyTools.XmlConfig" />
    <section name="FooList" type="SparkyTools.XmlConfig.ConfigurationSectionListDeserializer, SparkyTools.XmlConfig" />

In each registered custom section, specify the object type via the type attribute. Here's an single instance section:

  <Foo type="FooNamespace.Foo, FooAssemblyName">

...and a "list" section: (the type is the instance type, not "IList..."):

  <FooList type="FooNamespace.Bar, FooAssemblyName">

To read from your custom .config section, just call the Load method, specifying the object type and the .config section name:

    Foo foo = ConfigurationSectionDeserializer.Load<Foo>("Foo");
    IList<Foo> fooList = ConfigurationSectionListDeserializer.Load<Foo>("FooList");

DependencyProvider methods

These methods create DependencyProviders for use with apps that use app.config / web.config files:

  • ConfigurationSectionDeserializer.DependencyProvider / ConfigurationSectionListDeserializer.DependencyProvider create DependencyProviders that load data from a .config file section:
    using SparkyTools.DependencyProvider;
    public class Foo
        public Foo(
            DependencyProvider<Bar> barProvider, 
            DependencyProvider<IList<Baz>> bazProvider)
    using SparkyTools.XmlConfig;
    . . .
        var foo = new Foo(
  • AppSettings.DependencyProvider creates a DependencyProvider that wraps ConfigurationManager.AppSettings:
    using SparkyTools.DependencyProvider;
    public class Qux
        private readonly Func<string, string> _getAppSetting;
        public Qux(DependencyProvider<Func<string, string> appSettingsProvider)
            _getAppSetting = appSettingsProvider.GetValue();
        public void MethodUsingAppSettings()
            string valueFromAppSettings = _getAppSetting("key);
    using SparkyTools.XmlConfig;
        var qux = new Qux(AppSettings.DependencyProvider());

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.1.1 663 5/28/2018
1.1.0 578 2/21/2018
1.0.2 529 2/21/2018
1.0.1 673 2/20/2018
1.0.0 527 2/20/2018

Added AppSettings.DependencyProvider()