// Token: 0x06000C31 RID: 3121 RVA: 0x00043F1C File Offset: 0x0004211C public virtual object lmethod_2198(Class_285 arg_0, Type arg_1, object obje_0, Class_418 arg_2) { bool flag = Class_514.IsNullableType(arg_1); Type type = flag ? Nullable.GetUnderlyingType(arg_1) : arg_1; if (arg_0.prop_9 != Class_508.Null) { try { if (arg_0.prop_9 == Class_508.String) { string enumText = arg_0.prop_10.ToString(); return(Class_505.ParseEnumName(enumText, flag, type)); } if (arg_0.prop_9 == Class_508.Integer) { if (!this.prop_1) { throw Class_417.xmethod_3101(arg_0, "Integer value {0} is not allowed.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_10)); } return(Class_499.ConvertOrCast(arg_0.prop_10, CultureInfo.InvariantCulture, type)); } } catch (Exception arg_3) { throw Class_417.tmethod_3102(arg_0, "Error converting value {0} to type '{1}'.".FormatWith(CultureInfo.InvariantCulture, Class_513.FormatValueForPrint(arg_0.prop_10), arg_1), arg_3); } throw Class_417.xmethod_3101(arg_0, "Unexpected token {0} when parsing enum.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9)); } if (!Class_514.IsNullableType(arg_1)) { throw Class_417.xmethod_3101(arg_0, "Cannot convert null value to {0}.".FormatWith(CultureInfo.InvariantCulture, arg_1)); } return(null); }
// Token: 0x060014E3 RID: 5347 RVA: 0x0006101C File Offset: 0x0005F21C private Class_463 cmethod_3824(Type arg_0, Class_364 arg_1) { Class_463 class_ = Class_463.None; if (arg_1 != Class_364.Always && Class_514.IsNullable(arg_0)) { class_ = Class_463.Null; if (Class_514.IsNullableType(arg_0)) { arg_0 = Nullable.GetUnderlyingType(arg_0); } } Class_496 typeCode = Class_499.GetTypeCode(arg_0); switch (typeCode) { case Class_496.Empty: case Class_496.Object: return(class_ | Class_463.String); case Class_496.Char: return(class_ | Class_463.String); case Class_496.Boolean: return(class_ | Class_463.Boolean); case Class_496.SByte: case Class_496.Int16: case Class_496.UInt16: case Class_496.Int32: case Class_496.Byte: case Class_496.UInt32: case Class_496.Int64: case Class_496.UInt64: case Class_496.BigInteger: return(class_ | Class_463.Integer); case Class_496.Single: case Class_496.Double: case Class_496.Decimal: return(class_ | Class_463.Float); case Class_496.DateTime: case Class_496.DateTimeOffset: return(class_ | Class_463.String); case Class_496.Guid: case Class_496.TimeSpan: case Class_496.Uri: case Class_496.String: case Class_496.Bytes: return(class_ | Class_463.String); case Class_496.DBNull: return(class_ | Class_463.Null); } throw new Class_318("Unexpected type code '{0}' for type '{1}'.".FormatWith(CultureInfo.InvariantCulture, typeCode, arg_0)); }
// Token: 0x06000E99 RID: 3737 RVA: 0x0004D1D8 File Offset: 0x0004B3D8 public virtual bool nmethod_0(Class_362 arg_0, ConvertBinder arg_1, out object arg_2) { if (arg_1.Type == typeof(Class_362)) { arg_2 = arg_0; return(true); } object obj = arg_0.prop_2; if (obj == null) { arg_2 = null; return(Class_514.IsNullable(arg_1.Type)); } arg_2 = Class_499.Convert(obj, CultureInfo.InvariantCulture, arg_1.Type); return(true); }
// Token: 0x06000E6E RID: 3694 RVA: 0x0004C1BC File Offset: 0x0004A3BC private static int smethod_2590(BigInteger arg_0, object obje_0) { int num = arg_0.CompareTo(Class_499.ToBigInteger(obje_0)); if (num != 0) { return(num); } if (obje_0 is decimal) { decimal num2 = (decimal)obje_0; return(0m.CompareTo(Math.Abs(num2 - Math.Truncate(num2)))); } if (obje_0 is double || obje_0 is float) { double num3 = Convert.ToDouble(obje_0, CultureInfo.InvariantCulture); return(0.0.CompareTo(Math.Abs(num3 - Math.Truncate(num3)))); } return(num); }
// Token: 0x06000D28 RID: 3368 RVA: 0x00047C64 File Offset: 0x00045E64 internal Class_349(Type arg_0) { Class_517.ArgumentNotNull(arg_0, "underlyingType"); this.prop_0 = arg_0; this.field_0 = Class_514.IsNullable(arg_0); this.field_3 = ((this.field_0 && Class_514.IsNullableType(arg_0)) ? Nullable.GetUnderlyingType(arg_0) : arg_0); this.prop_1 = this.field_3; this.field_1 = Class_499.IsConvertible(this.field_3); this.field_2 = this.field_3.IsEnum; if (this.field_3 == typeof(byte[])) { this.field_4 = Class_408.ReadAsBytes; return; } if (this.field_3 == typeof(int)) { this.field_4 = Class_408.ReadAsInt32; return; } if (this.field_3 == typeof(decimal)) { this.field_4 = Class_408.ReadAsDecimal; return; } if (this.field_3 == typeof(string)) { this.field_4 = Class_408.ReadAsString; return; } if (this.field_3 == typeof(DateTime)) { this.field_4 = Class_408.ReadAsDateTime; return; } if (this.field_3 == typeof(DateTimeOffset)) { this.field_4 = Class_408.ReadAsDateTimeOffset; return; } this.field_4 = Class_408.Read; }
// Token: 0x06000EC2 RID: 3778 RVA: 0x0004D7B4 File Offset: 0x0004B9B4 public Class_369(Type arg_0) : base(arg_0) { this.field_5 = Class_448.Primitive; this.prop_0 = Class_499.GetTypeCode(arg_0); this.field_6 = true; }
// Token: 0x0600110C RID: 4364 RVA: 0x000555C4 File Offset: 0x000537C4 public static string ToString(object value) { if (value == null) { return(Class_416.Null); } switch (Class_499.GetTypeCode(value.GetType())) { case Class_496.Char: return(Class_416.ToString((char)value)); case Class_496.Boolean: return(Class_416.ToString((bool)value)); case Class_496.SByte: return(Class_416.ToString((sbyte)value)); case Class_496.Int16: return(Class_416.ToString((short)value)); case Class_496.UInt16: return(Class_416.ToString((ushort)value)); case Class_496.Int32: return(Class_416.ToString((int)value)); case Class_496.Byte: return(Class_416.ToString((byte)value)); case Class_496.UInt32: return(Class_416.ToString((uint)value)); case Class_496.Int64: return(Class_416.ToString((long)value)); case Class_496.UInt64: return(Class_416.ToString((ulong)value)); case Class_496.Single: return(Class_416.ToString((float)value)); case Class_496.Double: return(Class_416.ToString((double)value)); case Class_496.DateTime: return(Class_416.ToString((DateTime)value)); case Class_496.DateTimeOffset: return(Class_416.ToString((DateTimeOffset)value)); case Class_496.Decimal: return(Class_416.ToString((decimal)value)); case Class_496.Guid: return(Class_416.ToString((Guid)value)); case Class_496.TimeSpan: return(Class_416.ToString((TimeSpan)value)); case Class_496.BigInteger: return(Class_416.ToStringInternal((BigInteger)value)); case Class_496.Uri: return(Class_416.ToString((Uri)value)); case Class_496.String: return(Class_416.ToString((string)value)); case Class_496.DBNull: return(Class_416.Null); } throw new ArgumentException("Unsupported type: {0}. Use the JsonSerializer class to get the object's JSON representation.".FormatWith(CultureInfo.InvariantCulture, value.GetType())); }
// Token: 0x06000E71 RID: 3697 RVA: 0x0004C5E8 File Offset: 0x0004A7E8 private static bool gmethod_2593(ExpressionType arg_0, object obje_0, object obje_1, out object arg_1) { if ((obje_0 is string || obje_1 is string) && (arg_0 == ExpressionType.Add || arg_0 == ExpressionType.AddAssign)) { arg_1 = ((obje_0 != null) ? obje_0.ToString() : null) + ((obje_1 != null) ? obje_1.ToString() : null); return(true); } if (obje_0 is BigInteger || obje_1 is BigInteger) { if (obje_0 == null || obje_1 == null) { arg_1 = null; return(true); } BigInteger bigInteger = Class_499.ToBigInteger(obje_0); BigInteger bigInteger2 = Class_499.ToBigInteger(obje_1); if (arg_0 > ExpressionType.Multiply) { if (arg_0 <= ExpressionType.DivideAssign) { if (arg_0 != ExpressionType.Subtract) { switch (arg_0) { case ExpressionType.AddAssign: goto IL_EB; case ExpressionType.AndAssign: goto IL_49E; case ExpressionType.DivideAssign: goto IL_11B; default: goto IL_49E; } } } else { if (arg_0 == ExpressionType.MultiplyAssign) { goto IL_10B; } if (arg_0 != ExpressionType.SubtractAssign) { goto IL_49E; } } arg_1 = bigInteger - bigInteger2; return(true); } if (arg_0 != ExpressionType.Add) { if (arg_0 == ExpressionType.Divide) { goto IL_11B; } if (arg_0 != ExpressionType.Multiply) { goto IL_49E; } goto IL_10B; } IL_EB: arg_1 = bigInteger + bigInteger2; return(true); IL_10B: arg_1 = bigInteger * bigInteger2; return(true); IL_11B: arg_1 = bigInteger / bigInteger2; return(true); } else if (obje_0 is ulong || obje_1 is ulong || obje_0 is decimal || obje_1 is decimal) { if (obje_0 == null || obje_1 == null) { arg_1 = null; return(true); } decimal d = Convert.ToDecimal(obje_0, CultureInfo.InvariantCulture); decimal d2 = Convert.ToDecimal(obje_1, CultureInfo.InvariantCulture); if (arg_0 > ExpressionType.Multiply) { if (arg_0 <= ExpressionType.DivideAssign) { if (arg_0 != ExpressionType.Subtract) { switch (arg_0) { case ExpressionType.AddAssign: goto IL_1F0; case ExpressionType.AndAssign: goto IL_49E; case ExpressionType.DivideAssign: goto IL_223; default: goto IL_49E; } } } else { if (arg_0 == ExpressionType.MultiplyAssign) { goto IL_212; } if (arg_0 != ExpressionType.SubtractAssign) { goto IL_49E; } } arg_1 = d - d2; return(true); } if (arg_0 != ExpressionType.Add) { if (arg_0 == ExpressionType.Divide) { goto IL_223; } if (arg_0 != ExpressionType.Multiply) { goto IL_49E; } goto IL_212; } IL_1F0: arg_1 = d + d2; return(true); IL_212: arg_1 = d * d2; return(true); IL_223: arg_1 = d / d2; return(true); } else if (obje_0 is float || obje_1 is float || obje_0 is double || obje_1 is double) { if (obje_0 == null || obje_1 == null) { arg_1 = null; return(true); } double num = Convert.ToDouble(obje_0, CultureInfo.InvariantCulture); double num2 = Convert.ToDouble(obje_1, CultureInfo.InvariantCulture); if (arg_0 > ExpressionType.Multiply) { if (arg_0 <= ExpressionType.DivideAssign) { if (arg_0 != ExpressionType.Subtract) { switch (arg_0) { case ExpressionType.AddAssign: goto IL_2FA; case ExpressionType.AndAssign: goto IL_49E; case ExpressionType.DivideAssign: goto IL_324; default: goto IL_49E; } } } else { if (arg_0 == ExpressionType.MultiplyAssign) { goto IL_316; } if (arg_0 != ExpressionType.SubtractAssign) { goto IL_49E; } } arg_1 = num - num2; return(true); } if (arg_0 != ExpressionType.Add) { if (arg_0 == ExpressionType.Divide) { goto IL_324; } if (arg_0 != ExpressionType.Multiply) { goto IL_49E; } goto IL_316; } IL_2FA: arg_1 = num + num2; return(true); IL_316: arg_1 = num * num2; return(true); IL_324: arg_1 = num / num2; return(true); } else if (obje_0 is int || obje_0 is uint || obje_0 is long || obje_0 is short || obje_0 is ushort || obje_0 is sbyte || obje_0 is byte || obje_1 is int || obje_1 is uint || obje_1 is long || obje_1 is short || obje_1 is ushort || obje_1 is sbyte || obje_1 is byte) { if (obje_0 == null || obje_1 == null) { arg_1 = null; return(true); } long num3 = Convert.ToInt64(obje_0, CultureInfo.InvariantCulture); long num4 = Convert.ToInt64(obje_1, CultureInfo.InvariantCulture); if (arg_0 > ExpressionType.Multiply) { if (arg_0 <= ExpressionType.DivideAssign) { if (arg_0 != ExpressionType.Subtract) { switch (arg_0) { case ExpressionType.AddAssign: goto IL_466; case ExpressionType.AndAssign: goto IL_49E; case ExpressionType.DivideAssign: goto IL_490; default: goto IL_49E; } } } else { if (arg_0 == ExpressionType.MultiplyAssign) { goto IL_482; } if (arg_0 != ExpressionType.SubtractAssign) { goto IL_49E; } } arg_1 = num3 - num4; return(true); } if (arg_0 != ExpressionType.Add) { if (arg_0 == ExpressionType.Divide) { goto IL_490; } if (arg_0 != ExpressionType.Multiply) { goto IL_49E; } goto IL_482; } IL_466: arg_1 = num3 + num4; return(true); IL_482: arg_1 = num3 * num4; return(true); IL_490: arg_1 = num3 / num4; return(true); } IL_49E: arg_1 = null; return(false); }