设为首页 加入收藏

TOP

Introduction to configuration wrapper
2015-07-20 17:19:35 来源: 作者: 【 】 浏览:3
Tags:Introduction configuration wrapper

/* By Dylan SUN */

In your applications, you are certainly using the configuration sections like appSettings for custom configurations, connectionStrings for database binding and other sections like WCF bindings, etc.

To make your application more flexible for unit testing, you could use a configuration wrapper to control the access to the configuration file.

You can create an interface to expose some methods to access different configurations.

This is two methods to retrieve the appSettings and connectionStrings by the configuration key.

    public interface IConfigurationReader
    {
        string GetAppSettings(string key);

        string GetConnectionString(string key);
    }

Here are their implementation.

    public class ConfigurationReader : IConfigurationReader
    {
        public string GetAppSettings(string key)
        {
            return ConfigurationManager.AppSettings[key];
        }

        public string GetConnectionString(string key)
        {
            return ConfigurationManager.ConnectionStrings[key].ConnectionString;
        }
    }

You can register the interface and its implementation with dependency injection pattern using UnityContainer.

IUnityContainer container = new UnityContainer();

//register interface and its implementation
container.RegisterType
   
    ();
   

Resolve the interface and use the class to access the configuration value.

//resolve the interface
var configurationReader = container.Resolve
   
    (); //access GetAppSettings method to get the value var value = configurationReader.GetAppSettings("hello"); Console.WriteLine(value);
   

You can even centralize the configuration keys in a static class to facilitate the configuration key management.

I hope you find this article useful! Thanks.

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU 2522 A simple problem 下一篇leetcode:Pow(x, n)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·【C语言】动态内存管 (2025-12-27 06:23:20)
·C语言中的内存管理 - (2025-12-27 06:23:16)
·C语言指南:C语言内 (2025-12-27 06:23:14)
·Redis on AWS:Elast (2025-12-27 04:19:30)
·在 Spring Boot 项目 (2025-12-27 04:19:27)