Connection strings and ConfigurationWrapper

 Published On

I always forget how to properly do these damn things :). Everytime I need to use a connection string, I say to myself

Go ahead, do it instead of looking on the web, you have done it millions of times, it will go faster

And no.

It doesn’t go faster. :) I always forget one small thing and then I lose a considerable amount of time fixing the problem. So here it is , one single place for me to look for the information.

Configuration wrapper

public interface IConfigurationWrapper
    string SqlServerConnectionString { get; }
public class ConfigurationWrapper : IConfigurationWrapper
    public string SqlServerConnectionString
            var result = ConfigurationManager.ConnectionStrings["SqlServer"]
            return result;


<?xml version="1.0" encoding="utf-8" ?>
    <clear />
    <add name="SqlServer" 
         connectionString="Data Source=DBServerName;Initial Catalog=DBName; User Id=userName;Password=password;"

Check also The Connection Strings Reference , an absolute life saver.

Why I would need the ConfigurationWrapper ?

ConfigurationWrapper class :

  • avoids me to put hard codes code like the following

in my classes

  • lets me to mock the interface IConfigurationWrapper during unit tests. This way, I don’t copy or reference app.config in my test classes.

How to consume ConfigurationWrapper ?

This type can be consumed by injecting it through the constructor.

public class SqlServerDataImporter : IDataImporter
   private readonly IConfigurationWrapper _configuration;
   private readonly IOutput _output;

   public SqlServerDataImporter(IConfigurationWrapper configuration, IOutput output)
       _configuration = configuration;
       _output = output;

Tags:   .net   c#   programming   t.d.d   unit test   xml


comments powered by Disqus

© 2017 - Mechanical Object. All rights reserved
Built using Jekyll