private bool ConvertToBoolean (string key, string value, bool defaultValue)
{
if (value.Length == 0)
return defaultValue;
string upperValue = value.ToUpper ();
if (upperValue == "TRUE" || upperValue == "YES")
return true;
else if (upperValue == "FALSE" || upperValue == "NO")
return false;
throw new ArgumentException (string.Format (CultureInfo.InvariantCulture,
"Invalid value \"{0}\" for key '{1}'.", value, key));
}