public long GetLong(string key)
{
object val = this[key];
if (val == null)
return 0;
if (val is double)
return (long)((double)val);
else if (val is int)
return (long)((int)val);
else if (val is float)
return (long)((float)val);
else if (val is short)
return (long)((short)val);
else if (val is long)
return (long)((long)val);
else if (val is string)
return long.Parse((string)val, CultureInfo.InvariantCulture);
throw new Exception("Doesn't support convertion from type " + val.GetType().FullName);
}