Custom configuration files

We can defined our own configuration files like we use to have web.config. This will help you get values/settings parameters instantaneously without having your web server restarted everytime you update web.config for these values.

Below is a sample settings.config file placed under App_Data:

<?xml version=”1.0″ encoding=”utf-8″ ?>

<settings>
<app>
<name>My app name</name>
</app>

<cache>
<enabled>true</enabled>
<cacheExpirationMinutes>1000</cacheExpirationMinutes>
</cache>

<formatting>
<dateFormat>dd/mm/yyyy</dateFormat>
<priceFormat>{0:#,#}</priceFormat>
</formatting>
</settings>

Class to read this configuration file:

public class Helper
{
private static XmlNode GetAppConfig()
{
string filePath = Path.Combine(GetAppDataPath(), “setting.config”);
if (!File.Exists(filePath))
throw new Exception(“setting.config does not exist in App_Data.”);

string strXml = File.ReadAllText(filePath);

XmlDocument doc = new XmlDocument();
doc.LoadXml(strXml);
XmlNode node = doc.SelectSingleNode(“settings”);

return node;
}

public static string GetConfigValue(string sectionName, string key)
{
XmlNode config = GetAppConfig();
XmlNode node = config.SelectSingleNode(sectionName + “/” + key);

return node.InnerText;
}
}

And, its usage:

public static bool IsCacheOn
{
get
{
return Convert.ToBoolean(Helper.GetConfigValue(“cache”, “enabled”));
}
}

Advertisements

About Saad Khan

Saad is an ASP.NET developer with 4 years of experience, and has also made a number of contributions to the Sitefinity marketplace and community. He loves to explore new code, and create innovative tools and procedures while exploring new approaches in his work with Sitefinity and MVC. As an experienced .NET developer, he frequents both Telerik and Microsoft technologies. In his spare time, Saad is an avid gamer and movie fanatic, and also experiments with new and interesting tools on the Microsoft platform.ā€‹ā€‹

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: