object unbox(object val)
{
System.Type t = m_reflect.FieldType;
if (val is Boolean) return t == BoolType ? ((Boolean)val).booleanValue() : val;
if (val is Double) return t == DoubleType ? ((Double)val).doubleValue() : val;
if (val is Long) return t == Int64Type ? ((Long)val).longValue() : val;
return val;
}