示例#1
0
 // Token: 0x06000C1B RID: 3099 RVA: 0x00043A2E File Offset: 0x00041C2E
 private static void xmethod_2181(Class_285 arg_0)
 {
     if (!arg_0.vmethod_1885())
     {
         throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading KeyValuePair.");
     }
 }
示例#2
0
        // Token: 0x06000C13 RID: 3091 RVA: 0x00043714 File Offset: 0x00041914
        private object cmethod_2174(Class_285 arg_0)
        {
            IDictionary <string, object> dictionary = new ExpandoObject();

            while (arg_0.vmethod_1885())
            {
                Class_508 class_ = arg_0.prop_9;
                switch (class_)
                {
                case Class_508.PropertyName:
                {
                    string key = arg_0.prop_10.ToString();
                    if (!arg_0.vmethod_1885())
                    {
                        throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading ExpandoObject.");
                    }
                    object value = this.tmethod_2172(arg_0);
                    dictionary[key] = value;
                    break;
                }

                case Class_508.Comment:
                    break;

                default:
                    if (class_ == Class_508.EndObject)
                    {
                        return(dictionary);
                    }
                    break;
                }
            }
            throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading ExpandoObject.");
        }
示例#3
0
        // Token: 0x06000C11 RID: 3089 RVA: 0x00043624 File Offset: 0x00041824
        private object tmethod_2172(Class_285 arg_0)
        {
            while (arg_0.prop_9 == Class_508.Comment)
            {
                if (!arg_0.vmethod_1885())
                {
                    throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading ExpandoObject.");
                }
            }
            switch (arg_0.prop_9)
            {
            case Class_508.StartObject:
                return(this.cmethod_2174(arg_0));

            case Class_508.StartArray:
                return(this.gmethod_2173(arg_0));

            default:
                if (Class_486.IsPrimitiveToken(arg_0.prop_9))
                {
                    return(arg_0.prop_10);
                }
                throw Class_417.xmethod_3101(arg_0, "Unexpected token when converting ExpandoObject: {0}".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
            }
        }
示例#4
0
        // Token: 0x06000BEC RID: 3052 RVA: 0x000427C0 File Offset: 0x000409C0
        private byte[] tmethod_2142(Class_285 arg_0)
        {
            List <byte> list = new List <byte>();

            while (arg_0.vmethod_1885())
            {
                Class_508 class_ = arg_0.prop_9;
                switch (class_)
                {
                case Class_508.Comment:
                    continue;

                case Class_508.Raw:
                    break;

                case Class_508.Integer:
                    list.Add(Convert.ToByte(arg_0.prop_10, CultureInfo.InvariantCulture));
                    continue;

                default:
                    if (class_ == Class_508.EndArray)
                    {
                        return(list.ToArray());
                    }
                    break;
                }
                throw Class_417.xmethod_3101(arg_0, "Unexpected token when reading bytes: {0}".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
            }
            throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading bytes.");
        }
示例#5
0
        private void smethod_3930(Class_296 arg_0, ISerializable arg_1, Class_367 arg_2, Class_454 arg_3, Class_350 arg_4, Class_454 arg_5)
        {
            if (!Class_470.FullyTrusted)
            {
                string text = "Type '{0}' implements ISerializable but cannot be serialized using the ISerializable interface because the current application is not fully trusted and ISerializable can expose secure data." + Environment.NewLine + "To fix this error either change the environment to be fully trusted, change the application to not deserialize the type, add JsonObjectAttribute to the type or change the JsonSerializer setting ContractResolver to use a new DefaultContractResolver with IgnoreSerializableInterface set to true." + Environment.NewLine;
                text = text.FormatWith(CultureInfo.InvariantCulture, arg_1.GetType());
                throw Class_417.gmethod_3103(null, arg_0.prop_3, text, null);
            }
            this.vmethod_3915(arg_0, arg_2, arg_1);
            this.field_2.Add(arg_1);
            this.pmethod_3919(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
            SerializationInfo serializationInfo = new SerializationInfo(arg_2.prop_0, new FormatterConverter());

            arg_1.GetObjectData(serializationInfo, this.field_3.field_14);
            foreach (SerializationEntry serializationEntry in serializationInfo)
            {
                Class_349 class_ = this.cmethod_3904(serializationEntry.Value);
                if (this.lmethod_3908(serializationEntry.Value, null, class_, arg_2, arg_3))
                {
                    arg_0.gmethod_2013(serializationEntry.Name);
                    this.xmethod_3911(arg_0, serializationEntry.Value);
                }
                else if (this.smethod_3910(arg_0, serializationEntry.Value, null, class_, arg_2, arg_3))
                {
                    arg_0.gmethod_2013(serializationEntry.Name);
                    this.dmethod_3906(arg_0, serializationEntry.Value, class_, null, arg_2, arg_3);
                }
            }
            arg_0.lmethod_2008();
            this.field_2.RemoveAt(this.field_2.Count - 1);
            this.dmethod_3916(arg_0, arg_2, arg_1);
        }
示例#6
0
        // Token: 0x06000BF5 RID: 3061 RVA: 0x00042B70 File Offset: 0x00040D70
        public virtual object pmethod_2149(Class_285 arg_0, Type arg_1, object obje_0, Class_418 arg_2)
        {
            DataTable dataTable = obje_0 as DataTable;

            if (dataTable == null)
            {
                dataTable = ((arg_1 == typeof(DataTable)) ? new DataTable() : ((DataTable)Activator.CreateInstance(arg_1)));
            }
            if (arg_0.prop_9 == Class_508.PropertyName)
            {
                dataTable.TableName = (string)arg_0.prop_10;
                Class_302.tmethod_2152(arg_0);
            }
            if (arg_0.prop_9 != Class_508.StartArray)
            {
                throw Class_417.xmethod_3101(arg_0, "Unexpected JSON token when reading DataTable. Expected StartArray, got {0}.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
            }
            Class_302.tmethod_2152(arg_0);
            while (arg_0.prop_9 != Class_508.EndArray)
            {
                Class_302.smethod_2150(arg_0, dataTable);
                Class_302.tmethod_2152(arg_0);
            }
            return(dataTable);
        }
示例#7
0
        // 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);
        }
示例#8
0
        // Token: 0x06000BF7 RID: 3063 RVA: 0x00042DC4 File Offset: 0x00040FC4
        private static Type xmethod_2151(Class_285 arg_0)
        {
            Class_508 class_ = arg_0.prop_9;

            switch (class_)
            {
            case Class_508.StartArray:
            {
                Class_302.tmethod_2152(arg_0);
                if (arg_0.prop_9 == Class_508.StartObject)
                {
                    return(typeof(DataTable));
                }
                Type type = Class_302.xmethod_2151(arg_0);
                return(type.MakeArrayType());
            }

            case Class_508.Integer:
            case Class_508.Float:
            case Class_508.String:
            case Class_508.Boolean:
            case Class_508.Date:
            case Class_508.Bytes:
                return(arg_0.prop_11);

            case Class_508.Null:
            case Class_508.Undefined:
                return(typeof(string));
            }
            throw Class_417.xmethod_3101(arg_0, "Unexpected JSON token when reading DataTable: {0}".FormatWith(CultureInfo.InvariantCulture, class_));
        }
示例#9
0
 // Token: 0x06000BF2 RID: 3058 RVA: 0x00042A10 File Offset: 0x00040C10
 private void kmethod_2147(Class_285 arg_0)
 {
     if (!arg_0.vmethod_1885())
     {
         throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading DataSet.");
     }
 }
示例#10
0
 // Token: 0x06000C06 RID: 3078 RVA: 0x00043377 File Offset: 0x00041577
 private static void gmethod_2163(Class_285 arg_0)
 {
     if (!arg_0.vmethod_1885())
     {
         throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading union.");
     }
 }
示例#11
0
 // Token: 0x06000BF8 RID: 3064 RVA: 0x00042E7F File Offset: 0x0004107F
 private static void tmethod_2152(Class_285 arg_0)
 {
     if (!arg_0.vmethod_1885())
     {
         throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading DataTable.");
     }
 }
示例#12
0
        // Token: 0x06000F7F RID: 3967 RVA: 0x0004FCF4 File Offset: 0x0004DEF4
        public virtual object kmethod_2807(Class_285 arg_0, Type arg_1, object obje_0, Class_418 arg_2)
        {
            bool flag = Class_514.IsNullableType(arg_1);
            Type left = flag ? Nullable.GetUnderlyingType(arg_1) : arg_1;

            if (arg_0.prop_9 == Class_508.Null)
            {
                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);
            }
            else if (arg_0.prop_9 == Class_508.Date)
            {
                if (!(left == typeof(DateTimeOffset)))
                {
                    return(arg_0.prop_10);
                }
                if (!(arg_0.prop_10 is DateTimeOffset))
                {
                    return(new DateTimeOffset((DateTime)arg_0.prop_10));
                }
                return(arg_0.prop_10);
            }
            else
            {
                if (arg_0.prop_9 != Class_508.String)
                {
                    throw Class_417.xmethod_3101(arg_0, "Unexpected token parsing date. Expected String, got {0}.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
                }
                string text = arg_0.prop_10.ToString();
                if (string.IsNullOrEmpty(text) && flag)
                {
                    return(null);
                }
                if (left == typeof(DateTimeOffset))
                {
                    if (!string.IsNullOrEmpty(this.field_2))
                    {
                        return(DateTimeOffset.ParseExact(text, this.field_2, this.prop_2, this.field_1));
                    }
                    return(DateTimeOffset.Parse(text, this.prop_2, this.field_1));
                }
                else
                {
                    if (!string.IsNullOrEmpty(this.field_2))
                    {
                        return(DateTime.ParseExact(text, this.field_2, this.prop_2, this.field_1));
                    }
                    return(DateTime.Parse(text, this.prop_2, this.field_1));
                }
            }
        }
示例#13
0
 // Token: 0x06000C26 RID: 3110 RVA: 0x00043C61 File Offset: 0x00041E61
 public virtual object pmethod_2189(Class_285 arg_0, Type arg_1, object obje_0, Class_418 arg_2)
 {
     if (arg_0.prop_9 == Class_508.StartObject)
     {
         return(this.xmethod_2191(arg_0, arg_2));
     }
     if (arg_0.prop_9 == Class_508.String)
     {
         return(this.smethod_2190(arg_0));
     }
     throw Class_417.xmethod_3101(arg_0, "Unexpected token when reading Regex.");
 }
示例#14
0
        // Token: 0x0600154A RID: 5450 RVA: 0x00065584 File Offset: 0x00063784
        private bool smethod_3910(Class_296 arg_0, object obje_0, Class_454 arg_1, Class_349 arg_2, Class_350 arg_3, Class_454 arg_4)
        {
            if (obje_0 == null || arg_2.field_5 == Class_448.Primitive || arg_2.field_5 == Class_448.String)
            {
                return(true);
            }
            Class_458?class_ = null;

            if (arg_1 != null)
            {
                class_ = arg_1.prop_19;
            }
            if (class_ == null && arg_4 != null)
            {
                class_ = arg_4.prop_28;
            }
            if (class_ == null && arg_3 != null)
            {
                class_ = arg_3.prop_4;
            }
            if (this.field_2.IndexOf(obje_0) != -1)
            {
                string text = "Self referencing loop detected";
                if (arg_1 != null)
                {
                    text += " for property '{0}'".FormatWith(CultureInfo.InvariantCulture, arg_1.prop_1);
                }
                text += " with type '{0}'.".FormatWith(CultureInfo.InvariantCulture, obje_0.GetType());
                switch (class_.GetValueOrDefault(this.field_3.field_3))
                {
                case Class_458.Error:
                    throw Class_417.gmethod_3103(null, arg_0.prop_3, text, null);

                case Class_458.Ignore:
                    if (this.field_4 != null && this.field_4.prop_0 >= TraceLevel.Verbose)
                    {
                        this.field_4.gmethod_2303(TraceLevel.Verbose, Class_326.FormatMessage(null, arg_0.prop_4, text + ". Skipping serializing self referenced value."), null);
                    }
                    return(false);

                case Class_458.Serialize:
                    if (this.field_4 != null && this.field_4.prop_0 >= TraceLevel.Verbose)
                    {
                        this.field_4.gmethod_2303(TraceLevel.Verbose, Class_326.FormatMessage(null, arg_0.prop_4, text + ". Serializing self referenced value."), null);
                    }
                    return(true);
                }
            }
            return(true);
        }
示例#15
0
        // Token: 0x06000C28 RID: 3112 RVA: 0x00043D68 File Offset: 0x00041F68
        private Regex xmethod_2191(Class_285 arg_0, Class_418 arg_1)
        {
            string       text         = null;
            RegexOptions?regexOptions = null;

            while (arg_0.vmethod_1885())
            {
                Class_508 class_ = arg_0.prop_9;
                switch (class_)
                {
                case Class_508.PropertyName:
                {
                    string a = arg_0.prop_10.ToString();
                    if (!arg_0.vmethod_1885())
                    {
                        throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading Regex.");
                    }
                    if (string.Equals(a, "Pattern", StringComparison.OrdinalIgnoreCase))
                    {
                        text = (string)arg_0.prop_10;
                    }
                    else if (string.Equals(a, "Options", StringComparison.OrdinalIgnoreCase))
                    {
                        regexOptions = new RegexOptions?(arg_1.pmethod_3169 <RegexOptions>(arg_0));
                    }
                    else
                    {
                        arg_0.smethod_1900();
                    }
                    break;
                }

                case Class_508.Comment:
                    break;

                default:
                    if (class_ == Class_508.EndObject)
                    {
                        if (text == null)
                        {
                            throw Class_417.xmethod_3101(arg_0, "Error deserializing Regex. No pattern found.");
                        }
                        return(new Regex(text, regexOptions ?? RegexOptions.None));
                    }
                    break;
                }
            }
            throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading Regex.");
        }
示例#16
0
        // Token: 0x0600154C RID: 5452 RVA: 0x00065794 File Offset: 0x00063994
        private string tmethod_3912(Class_296 arg_0, object obje_0)
        {
            string result;

            try
            {
                string text = this.field_3.pmethod_3179().tmethod_2682(this, obje_0);
                result = text;
            }
            catch (Exception arg_)
            {
                throw Class_417.gmethod_3103(null, arg_0.prop_3, "Error writing object reference for '{0}'.".FormatWith(CultureInfo.InvariantCulture, obje_0.GetType()), arg_);
            }
            return(result);
        }
示例#17
0
 // Token: 0x06001034 RID: 4148 RVA: 0x000518E8 File Offset: 0x0004FAE8
 private string xmethod_2971(Class_285 arg_0)
 {
     if (arg_0.prop_9 == Class_508.String)
     {
         return(arg_0.prop_10.ToString());
     }
     if (arg_0.prop_9 == Class_508.Integer)
     {
         return(XmlConvert.ToString(Convert.ToInt64(arg_0.prop_10, CultureInfo.InvariantCulture)));
     }
     if (arg_0.prop_9 == Class_508.Float)
     {
         if (arg_0.prop_10 is decimal)
         {
             return(XmlConvert.ToString((decimal)arg_0.prop_10));
         }
         if (arg_0.prop_10 is float)
         {
             return(XmlConvert.ToString((float)arg_0.prop_10));
         }
         return(XmlConvert.ToString(Convert.ToDouble(arg_0.prop_10, CultureInfo.InvariantCulture)));
     }
     else
     {
         if (arg_0.prop_9 == Class_508.Boolean)
         {
             return(XmlConvert.ToString(Convert.ToBoolean(arg_0.prop_10, CultureInfo.InvariantCulture)));
         }
         if (arg_0.prop_9 == Class_508.Date)
         {
             if (arg_0.prop_10 is DateTimeOffset)
             {
                 return(XmlConvert.ToString((DateTimeOffset)arg_0.prop_10));
             }
             DateTime value = Convert.ToDateTime(arg_0.prop_10, CultureInfo.InvariantCulture);
             return(XmlConvert.ToString(value, Class_502.ToSerializationMode(value.Kind)));
         }
         else
         {
             if (arg_0.prop_9 == Class_508.Null)
             {
                 return(null);
             }
             throw Class_417.xmethod_3101(arg_0, "Cannot get an XML string value from token type '{0}'.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
         }
     }
 }
示例#18
0
        // Token: 0x06000C12 RID: 3090 RVA: 0x000436BC File Offset: 0x000418BC
        private object gmethod_2173(Class_285 arg_0)
        {
            IList <object> list = new List <object>();

            while (arg_0.vmethod_1885())
            {
                Class_508 class_ = arg_0.prop_9;
                if (class_ != Class_508.Comment)
                {
                    if (class_ == Class_508.EndArray)
                    {
                        return(list);
                    }
                    object item = this.tmethod_2172(arg_0);
                    list.Add(item);
                }
            }
            throw Class_417.xmethod_3101(arg_0, "Unexpected end when reading ExpandoObject.");
        }
示例#19
0
 // Token: 0x06000C34 RID: 3124 RVA: 0x000440A0 File Offset: 0x000422A0
 public virtual object xmethod_2201(Class_285 arg_0, Type arg_1, object obje_0, Class_418 arg_2)
 {
     if (arg_0.prop_9 == Class_508.Null)
     {
         return(null);
     }
     if (arg_0.prop_9 == Class_508.String)
     {
         try
         {
             return(new Version((string)arg_0.prop_10));
         }
         catch (Exception arg_3)
         {
             throw Class_417.tmethod_3102(arg_0, "Error parsing version string: {0}".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_10), arg_3);
         }
     }
     throw Class_417.xmethod_3101(arg_0, "Unexpected token or value when parsing version. Token: {0}, Value: {1}".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9, arg_0.prop_10));
 }
示例#20
0
        // Token: 0x06000BEB RID: 3051 RVA: 0x000426A0 File Offset: 0x000408A0
        public virtual object xmethod_2141(Class_285 arg_0, Type arg_1, object obje_0, Class_418 arg_2)
        {
            Type type = Class_514.IsNullableType(arg_1) ? Nullable.GetUnderlyingType(arg_1) : arg_1;

            if (arg_0.prop_9 == Class_508.Null)
            {
                if (!Class_514.IsNullable(arg_1))
                {
                    throw Class_417.xmethod_3101(arg_0, "Cannot convert null value to {0}.".FormatWith(CultureInfo.InvariantCulture, arg_1));
                }
                return(null);
            }
            else
            {
                byte[] array;
                if (arg_0.prop_9 == Class_508.StartArray)
                {
                    array = this.tmethod_2142(arg_0);
                }
                else
                {
                    if (arg_0.prop_9 != Class_508.String)
                    {
                        throw Class_417.xmethod_3101(arg_0, "Unexpected token parsing binary. Expected String or StartArray, got {0}.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
                    }
                    string s = arg_0.prop_10.ToString();
                    array = Convert.FromBase64String(s);
                }
                if (type.AssignableToTypeName("System.Data.Linq.Binary"))
                {
                    this.smethod_2140(type);
                    return(this.field_2.prop_0(new object[]
                    {
                        array
                    }));
                }
                if (type == typeof(SqlBinary))
                {
                    return(new SqlBinary(array));
                }
                throw Class_417.xmethod_3101(arg_0, "Unexpected object type when writing binary: {0}".FormatWith(CultureInfo.InvariantCulture, arg_1));
            }
        }
示例#21
0
        // Token: 0x06000C19 RID: 3097 RVA: 0x000438D0 File Offset: 0x00041AD0
        public virtual object pmethod_2179(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;
            Class_491 class_ = Class_308.field_2.Get(type);

            if (arg_0.prop_9 != Class_508.Null)
            {
                object obj  = null;
                object obj2 = null;
                Class_308.xmethod_2181(arg_0);
                while (arg_0.prop_9 == Class_508.PropertyName)
                {
                    string a = arg_0.prop_10.ToString();
                    if (string.Equals(a, "Key", StringComparison.OrdinalIgnoreCase))
                    {
                        Class_308.xmethod_2181(arg_0);
                        obj = arg_2.smethod_3170(arg_0, class_.cmethod_4064("Key"));
                    }
                    else if (string.Equals(a, "Value", StringComparison.OrdinalIgnoreCase))
                    {
                        Class_308.xmethod_2181(arg_0);
                        obj2 = arg_2.smethod_3170(arg_0, class_.cmethod_4064("Value"));
                    }
                    else
                    {
                        arg_0.smethod_1900();
                    }
                    Class_308.xmethod_2181(arg_0);
                }
                return(class_.prop_0(new object[]
                {
                    obj,
                    obj2
                }));
            }
            if (!flag)
            {
                throw Class_417.xmethod_3101(arg_0, "Cannot convert null value to KeyValuePair.");
            }
            return(null);
        }
示例#22
0
 // Token: 0x06001552 RID: 5458 RVA: 0x00065B7C File Offset: 0x00063D7C
 private bool lmethod_3918(Class_296 arg_0, object obje_0, Class_350 arg_1, Class_454 arg_2, Class_454 arg_3, out Class_349 arg_4, out object arg_5)
 {
     if (!arg_3.prop_10 && arg_3.prop_11 && this.kmethod_3937(arg_0, arg_3, obje_0) && this.lmethod_3938(arg_0, arg_3, obje_0))
     {
         if (arg_3.prop_0 == null)
         {
             arg_3.prop_0 = this.field_3.field_11.tmethod_3542(arg_3.prop_7);
         }
         arg_5 = arg_3.prop_5.pmethod_2309(obje_0);
         arg_4 = (arg_3.prop_0.field_7 ? arg_3.prop_0 : this.cmethod_3904(arg_5));
         if (this.pmethod_3909(arg_5, arg_3))
         {
             if (this.lmethod_3908(arg_5, arg_3, arg_4, arg_1, arg_2))
             {
                 arg_3.xmethod_3701(arg_0);
                 this.xmethod_3911(arg_0, arg_5);
                 return(false);
             }
             if (!this.smethod_3910(arg_0, arg_5, arg_3, arg_4, arg_1, arg_2))
             {
                 return(false);
             }
             if (arg_5 == null)
             {
                 Class_464 class_  = arg_1 as Class_464;
                 Class_364 class_2 = arg_3.field_0 ?? (((class_ != null) ? class_.prop_1 : null) ?? Class_364.Default);
                 if (class_2 == Class_364.Always)
                 {
                     throw Class_417.gmethod_3103(null, arg_0.prop_3, "Cannot write a null value for property '{0}'. Property requires a value.".FormatWith(CultureInfo.InvariantCulture, arg_3.prop_1), null);
                 }
             }
             return(true);
         }
     }
     arg_4 = null;
     arg_5 = null;
     return(false);
 }
示例#23
0
        // Token: 0x06000F82 RID: 3970 RVA: 0x0004FF28 File Offset: 0x0004E128
        public virtual object pmethod_2809(Class_285 arg_0, Type arg_1, object obje_0, Class_418 arg_2)
        {
            Type left = Class_514.IsNullableType(arg_1) ? Nullable.GetUnderlyingType(arg_1) : arg_1;

            if (arg_0.prop_9 == Class_508.Null)
            {
                if (!Class_514.IsNullable(arg_1))
                {
                    throw Class_417.xmethod_3101(arg_0, "Cannot convert null value to {0}.".FormatWith(CultureInfo.InvariantCulture, arg_1));
                }
                return(null);
            }
            else
            {
                if (arg_0.prop_9 != Class_508.StartConstructor || !string.Equals(arg_0.prop_10.ToString(), "Date", StringComparison.Ordinal))
                {
                    throw Class_417.xmethod_3101(arg_0, "Unexpected token or value when parsing date. Token: {0}, Value: {1}".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9, arg_0.prop_10));
                }
                arg_0.vmethod_1885();
                if (arg_0.prop_9 != Class_508.Integer)
                {
                    throw Class_417.xmethod_3101(arg_0, "Unexpected token parsing date. Expected Integer, got {0}.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
                }
                long     javaScriptTicks = (long)arg_0.prop_10;
                DateTime dateTime        = Class_502.ConvertJavaScriptTicksToDateTime(javaScriptTicks);
                arg_0.vmethod_1885();
                if (arg_0.prop_9 != Class_508.EndConstructor)
                {
                    throw Class_417.xmethod_3101(arg_0, "Unexpected token parsing date. Expected EndConstructor, got {0}.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
                }
                if (left == typeof(DateTimeOffset))
                {
                    return(new DateTimeOffset(dateTime));
                }
                return(dateTime);
            }
        }
示例#24
0
        // Token: 0x06000C04 RID: 3076 RVA: 0x00043064 File Offset: 0x00041264
        public virtual object xmethod_2161(Class_285 arg_0, Type arg_1, object obje_0, Class_418 arg_2)
        {
            if (arg_0.prop_9 == Class_508.Null)
            {
                return(null);
            }
            object    obj    = null;
            string    text   = null;
            Class_424 class_ = null;

            Class_305.gmethod_2163(arg_0);
            while (arg_0.prop_9 == Class_508.PropertyName)
            {
                string text2 = arg_0.prop_10.ToString();
                if (string.Equals(text2, "Case", StringComparison.OrdinalIgnoreCase))
                {
                    Class_305.gmethod_2163(arg_0);
                    Class_489 <object, object> getUnionCases = Class_484.GetUnionCases;
                    object   target = null;
                    object[] array  = new object[2];
                    array[0] = arg_1;
                    IEnumerable enumerable = (IEnumerable)getUnionCases(target, array);
                    text = arg_0.prop_10.ToString();
                    foreach (object obj2 in enumerable)
                    {
                        if ((string)Class_484.GetUnionCaseInfoName(obj2) == text)
                        {
                            obj = obj2;
                            break;
                        }
                    }
                    if (obj == null)
                    {
                        throw Class_417.xmethod_3101(arg_0, "No union type found with the name '{0}'.".FormatWith(CultureInfo.InvariantCulture, text));
                    }
                }
                else
                {
                    if (!string.Equals(text2, "Fields", StringComparison.OrdinalIgnoreCase))
                    {
                        throw Class_417.xmethod_3101(arg_0, "Unexpected property '{0}' found when reading union.".FormatWith(CultureInfo.InvariantCulture, text2));
                    }
                    Class_305.gmethod_2163(arg_0);
                    if (arg_0.prop_9 != Class_508.StartArray)
                    {
                        throw Class_417.xmethod_3101(arg_0, "Union fields must been an array.");
                    }
                    class_ = (Class_424)Class_361.dmethod_2566(arg_0);
                }
                Class_305.gmethod_2163(arg_0);
            }
            if (obj == null)
            {
                throw Class_417.xmethod_3101(arg_0, "No '{0}' property with union name found.".FormatWith(CultureInfo.InvariantCulture, "Case"));
            }
            PropertyInfo[] array2 = (PropertyInfo[])Class_484.GetUnionCaseInfoFields(obj, new object[0]);
            object[]       array3 = new object[array2.Length];
            if (array2.Length > 0 && class_ == null)
            {
                throw Class_417.xmethod_3101(arg_0, "No '{0}' property with union fields found.".FormatWith(CultureInfo.InvariantCulture, "Fields"));
            }
            if (class_ != null)
            {
                if (array2.Length != class_.prop_9)
                {
                    throw Class_417.xmethod_3101(arg_0, "The number of field values does not match the number of properties definied by union '{0}'.".FormatWith(CultureInfo.InvariantCulture, text));
                }
                for (int i = 0; i < class_.prop_9; i++)
                {
                    Class_361    class_2      = class_.lmethod_3358(i);
                    PropertyInfo propertyInfo = array2[i];
                    array3[i] = class_2.vmethod_2565(propertyInfo.PropertyType, arg_2);
                }
            }
            Class_489 <object, object> makeUnion = Class_484.MakeUnion;
            object target2 = null;

            object[] array4 = new object[3];
            array4[0] = obj;
            array4[1] = array3;
            return(makeUnion(target2, array4));
        }