平台,框架&库
现在阅读
App.Config Autoreader
0

App.Config Autoreader

由 ultracpy2018年1月27日

Introduction

In our day to day, in our developments, it is a rare case when we don’t need to read a configuration file. 
There are many techniques for its treatment such as a static class, a singleton class, etc. It is also normal to make this config class to be accessible throughout the project.

We will write a utility to automate the task of reading an app.config file. With this utility you will forget about using the ConfigurationManager class and the System.Configuration assembly.

We will make use of dynamics.

App.Config Autoreader is an Open Source project and it is available in inside of MoralesLarios.Development project in GitHub in this Link.

 

Index

  1. Autoreader description
  2. Install and use
  3. Pros and Cons
  4. Autoreader Transforms Types
    • Strings values
    • Numerics values
    • Date and DateTime values
    • Bools values
    • Arrays values
  5. Force values to string
  6. Save special character

 

 

Autoreader description

The autoreader action consists of app.config file read in the first step, convert values action for second step and final step, creation result class.

Simple example of a string value.

 

The process transforms the string key value to a strong type target variable.

The Config class, is responsible for expose the transformed app.config values.  

The Config class expose the app.Config values with strong types, but in a dynamic property.

 

Install and use

1.- For use, we download a nuget package MoralesLarios.Development.

Install-Package MoralesLarios.Development

 

2.- Add one setting in an app.config file.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>

  <appSettings>
    <add key="FilterDate" value="01/01/2018"/>
  </appSettings>

</configuration>

 

3.- Add using in the consumer class.

using MoralesLarios.Development.Configuration;

 

4.- Create a new variable of our app.config settings key and call Config.ConfigNodes.[app.config_keyName].

static void Main(string[] args)
{
    DateTime filterDate = Config.ConfigNodes.FilterDate;
}

 

All code.

using MoralesLarios.Development.Configuration;
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime filterDate = Config.ConfigNodes.FilterDate;
        }
    }
}

 

The execution read a DateTime value.

 

 

 

Prons and Cons

These are the pros and cons of Autoreader App.Config utility:

PROS.

  • Faster reader
  • Faster transform
  • Simple use and compression
  • Add a new key in app.config and it is available in this time.

CONS.

  • The app values are exposed in dynamics values, so that we lost the intellisense.

 

 

Autoreader Transforms Types

Autoreader utility can transform values of same types:

  • Stirngs
  • Numerics
  • Dates and DateTimes
  • Bools
  • Array of
    • Strings Arrays
    • Numerics Arrays
    • DateTimes Arrays
    • Bools Arrays

We will explain in deep each one of them.

 

 

Strings values

Is the very single process and transform the string app.config key value to string variable destination.

 

Numerics values

The process for numerics values is very similar to string values. In this action the string app.config key value is transformed to decimal value.

We decided choose a decimal type for numerics values for include all numerics types (short, int, double, etc).

 

Date and DateTime values

In this action the string app.config key value is transformed to datetime value.

DATE

DATETIME

 

Bools values

In this action the string app.config key value is transformed to bool value.

 

Arrays values

The array process is the same of the another’s types, but with the deference the app.config key value should contain an internal ‘;’ value, for delimiting some array nodes.

 This rule is valid for all arrays types.

Its result:

 

 

Force values to string

In cases we can may need read app.config key values of types (numerics, datetimes, bools, etc) as a strings values. In these cases, we can use (‘’) for force a string read value.

Variable value.

 

 

Save special character

If we want read a app.config key with special character as ( ; or ‘’), we can preceded the ‘\’ backslash the special character.

Example:

 

 

出处:https://www.codeproject.com/Articles/1225307/App-Config-Autoreader

关于作者
ultracpy
评论

    你必须 登录 提交评论