ConfigMgr Class

This page is part of the Class Library Pages collection.
Click the icon to see the index.
This class depends on the Parser class, found here.

Overview

The ConfigMgr class provides a means of working with application settings found in either an app.config or a web.config file.

Implementation

  1. Copy the source code, found below
  2. Modify the Key enum to suit your requirements
  3. Modify the static constructor to fill the _dict dictionary.

Source Code

VB.NET

This code is deprecated by the C# code below.
Imports Microsoft.VisualBasic
Imports System.Collections.Generic

Public Class ConfigMgr

    Public Enum Key
        AppId
        LinesPerPage
        SingleSignOnMode
    End Enum

    Private Shared _dict As Dictionary(Of Key, String)

    Shared Sub New()

        _dict = New Dictionary(Of Key, String)()
        _dict.Add(Key.AppId, "ApplicationID")
        _dict.Add(Key.LinesPerPage, "LinesPerPage")
        _dict.Add(Key.SingleSignOnMode, "SSO")

    End Sub
    Public Shared Function GetKey(ByVal key As Key) As String

        Return _dict(key)

    End Function
    Public Shared Function GetValue(ByVal key As Key, Optional ByVal defaultValue As String = "") _
    As String

        Dim s As String = ConfigurationManager.AppSettings(_dict(key))

        If s Is Nothing Then
            s = ""
        End If

        If s.Length = 0 Then
            s = defaultValue
        End If

        Return s

    End Function
    Public Shared Function TryGetValue(Of T)(ByVal key As Key, ByRef value As T) As Boolean

        Return Parser(Of T).TryParse(GetValue(key), value)

    End Function
End Class

C#

{copytext|cscode}
public enum ConfigKey
{
/* Elements of this enum should match the entries in your web.config file's 
   /configuration/appSettings section */
}

public static class Config
{
    public static string Get(ConfigKey key)
    {
        string s = ConfigurationManager.AppSettings[key.ToString()];

        if (s == null)
            throw new Exception("Configuration setting [" + key.ToString() + "] not found.");
        return s;
    }
    public static T Get<T>(ConfigKey key)
    {
        T result = default(T);
        string s = Get(key);
        string t = typeof(T).ToString();

        if (!Parser<T>.TryParse(s, out result))
            throw new Exception("Couldn't parse configured value, '" + s + "', for key [" + 
                key.ToString() + "] as a(n) " + t);

        return result;
    }
}