[Solved] Api client that fetches global configuration from web.config


Here ya go.

namespace dm2
{
    using System.Collections.Specialized;
    using System.Configuration;

    public class SomeApiClient
    {
        internal static NameValueCollection Config
        {
            get
            {
                if (config == null) config = ConfigurationManager.AppSettings;
                return config;
            }
        }

        internal static NameValueCollection config;
    }
}

Basically you just use a static property in a non static class…so in order to get your config settings,

public void DoFunConfigStuff()
{
    for (var i = 0; i < Config.Count;i++ )
    {
        Console.WriteLine("[{0}]: {1}",Config.Keys[i] ,Config[i]);
    }
}

Since you mentioned web.config, I’m assuming this is a web app. So I’d like to point out that you should expect that your app pool could be recycled at any time, at which point this would cause the static getter to reevaluate and load new settings. It’s best not to reply on this.

One thing you could do is serialize this info to some medium, be it disk or database, and then have some kind of db switch, or webpage that will force a reload.

So in that getter it would check for the serialized data, if it doesn’t exist, check web.config, and then save that data somewhere. Next time it gets recycled it will then pick up the old data. Really depends on your setup I suppose.

solved Api client that fetches global configuration from web.config