internal void Increment()
{
object value = Value;
if (value == null) {
value = 1L;
} else {
if (value is long) {
value = ((long)value) + 1;
} else if (value is int) {
value = (int)value + 1;
} else if (value is double) {
value = (double)value + 1;
} else {
throw new InvalidOperationException(String.Format("The value for '{0}' is not a numeric.", Name));
}
}
Value = value;
}