FromAppSettings

public static T FromAppSettings<T>(this string key, T defaultValue = default(T)) where T : IConvertible
{
	if (string.IsNullOrWhiteSpace(key))
		return defaultValue;

	var value = ConfigurationManager.AppSettings[key];

	if (string.IsNullOrWhiteSpace(value))
		return defaultValue;

	var tc = Type.GetTypeCode(typeof(T));

	switch (tc)
	{
		case TypeCode.Boolean:
		case TypeCode.Byte:
		case TypeCode.DateTime:
		case TypeCode.Decimal:
		case TypeCode.Double:
		case TypeCode.Int16:
		case TypeCode.Int32:
		case TypeCode.Int64:
		case TypeCode.String:
			T output;
			try
			{
				output = (T)Convert.ChangeType(value, tc);
			}
			catch
			{
				output = defaultValue;
			}

			return output;

		default:
			throw new NotSupportedException();
	}
}
Example:
//Example 1
var email = "EMail".FromAppSettings(string.Empty);

//Example 2
var email = "EMail".FromAppSettings("noreply@extensionmethod.net");

//Example 3
var id = "AppID".FromAppSettings(int.MinValue);

Description

Get a value from AppSettings section of Web.Config and change its type to the correct one or return a default value in case the key doesn't exists.

Details

Double click on the code to select all.

 

;