Skip to content

Config File Setup

Johelvis Guzman edited this page Mar 27, 2019 · 18 revisions

If you wish to use the configuration files to configure the repositories, please follow these steps:

Element Definitions

Element Description Attributes
defaultContextFactory Defines the default repository context factory to use Type string
interceptors Accepts a collection of interceptor elements
parameters Accepts a collection of parameter elements
loggingProvider Defines a logging provider to use Type string
cachingProvider Defines a caching provider to use Type string

NET451 & NETSTANDARD2

App.config In order for the repositories to read data from the App.config the user will need to add a custom section handler and a configuration section:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="repository" type="DotNetToolkit.Repository.Internal.ConfigFile.ConfigurationSection, DotNetToolkit.Repository" />
  </configSections>
  <repository>
    <defaultContextFactory type="DotNetToolkit.Repository.InMemory.Internal.InMemoryRepositoryContextFactory, DotNetToolkit.Repository.InMemory" />
    <loggingProvider type="DotNetToolkit.Repository.Configuration.Logging.ConsoleLoggerProvider, DotNetToolkit.Repository">
      <parameters>
        <parameter value="Debug" type="DotNetToolkit.Repository.Configuration.Logging.LogLevel, DotNetToolkit.Repository" />
      </parameters>
    </loggingProvider>
    <cachingProvider expiry="00:00:30" type="DotNetToolkit.Repository.Extensions.Microsoft.Caching.Memory.InMemoryCacheProvider, DotNetToolkit.Repository.Extensions.Microsoft.Caching.Memory" />
    <interceptors>
      <interceptor type="DotNetToolkit.Repository.Test.Data.TestRepositoryInterceptor, DotNetToolkit.Repository.Test">
        <parameters>
          <parameter value="random param" />
          <parameter value="True" type="System.Boolean" />
        </parameters>
      </interceptor>
    </interceptors>
  </repository>
</configuration>

NET451, NETSTANDARD1.3 & NETSTANDARD2

appsettings.config In order for the repositories to read data from the appsettings.json file the user will need to add a section to the file:

{
  "repository": {
    "defaultContextFactory": {
      "type": "DotNetToolkit.Repository.InMemory.Internal.InMemoryRepositoryContextFactory, DotNetToolkit.Repository.InMemory"
    },
    "loggingProvider": {
      "type": "DotNetToolkit.Repository.Configuration.Logging.ConsoleLoggerProvider, DotNetToolkit.Repository",
      "parameters": [
        {
          "type": "DotNetToolkit.Repository.Configuration.Logging.LogLevel, DotNetToolkit.Repository",
          "value": "Debug"
        }
      ]
    },
    "cachingProvider": {
      "type": "DotNetToolkit.Repository.Extensions.Microsoft.Caching.Memory.InMemoryCacheProvider, DotNetToolkit.Repository.Extensions.Microsoft.Caching.Memory",
      "expiry": "00:00:30"
    },
    "interceptors": [
      {
        "type": "DotNetToolkit.Repository.Test.Data.TestRepositoryInterceptor, DotNetToolkit.Repository.Test",
        "parameters": [
          {
            "type": "System.String",
            "value": "random param"
          },
          {
            "type": "System.Boolean",
            "value": "True"
          }
        ]
      }
    ]
  }
}

Additionally, element type that is defined in the configuration file can be resolved by using the ConfigurationProvider.SetDefaultFactory.

Clone this wiki locally