private static void AddObjectMetadata(Type type) { if (JsonMapper.object_metadata.ContainsKey(type)) { return; } ObjectMetadata value = default(ObjectMetadata); if (JsonMapper.HasInterface(type, "System.Collections.IDictionary")) { value.IsDictionary = true; } value.Properties = new Dictionary <string, PropertyMetadata>(); PropertyInfo[] publicInstanceProperties = JsonMapper.GetPublicInstanceProperties(type); for (int i = 0; i < publicInstanceProperties.Length; i++) { PropertyInfo propertyInfo = publicInstanceProperties[i]; if (propertyInfo.Name == "Item") { ParameterInfo[] indexParameters = propertyInfo.GetIndexParameters(); if (indexParameters.Length == 1) { if (indexParameters[0].ParameterType == typeof(string)) { value.ElementType = propertyInfo.PropertyType; } } } else { PropertyMetadata value2 = default(PropertyMetadata); value2.Info = propertyInfo; value2.Type = propertyInfo.PropertyType; value.Properties.Add(propertyInfo.Name, value2); } } FieldInfo[] fields = type.GetFields(); for (int j = 0; j < fields.Length; j++) { FieldInfo fieldInfo = fields[j]; PropertyMetadata value3 = default(PropertyMetadata); value3.Info = fieldInfo; value3.IsField = true; value3.Type = fieldInfo.FieldType; value.Properties.Add(fieldInfo.Name, value3); } object obj = JsonMapper.object_metadata_lock; lock (obj) { try { JsonMapper.object_metadata.Add(type, value); } catch (ArgumentException) { } } }
private static void AddTypeProperties(Type type) { if (JsonMapper.type_properties.ContainsKey(type)) { return; } IList <PropertyMetadata> list = new List <PropertyMetadata>(); PropertyInfo[] publicInstanceProperties = JsonMapper.GetPublicInstanceProperties(type); for (int i = 0; i < publicInstanceProperties.Length; i++) { PropertyInfo propertyInfo = publicInstanceProperties[i]; if (!(propertyInfo.Name == "Item")) { list.Add(new PropertyMetadata { Info = propertyInfo, IsField = false }); } } FieldInfo[] fields = type.GetFields(); for (int j = 0; j < fields.Length; j++) { FieldInfo info = fields[j]; list.Add(new PropertyMetadata { Info = info, IsField = true }); } object obj = JsonMapper.type_properties_lock; lock (obj) { try { JsonMapper.type_properties.Add(type, list); } catch (ArgumentException) { } } }
private static void AddArrayMetadata(Type type) { if (JsonMapper.array_metadata.ContainsKey(type)) { return; } ArrayMetadata value = default(ArrayMetadata); value.IsArray = type.IsArray; if (JsonMapper.HasInterface(type, "System.Collections.IList")) { value.IsList = true; } PropertyInfo[] publicInstanceProperties = JsonMapper.GetPublicInstanceProperties(type); for (int i = 0; i < publicInstanceProperties.Length; i++) { PropertyInfo propertyInfo = publicInstanceProperties[i]; if (!(propertyInfo.Name != "Item")) { ParameterInfo[] indexParameters = propertyInfo.GetIndexParameters(); if (indexParameters.Length == 1) { if (indexParameters[0].ParameterType == typeof(int)) { value.ElementType = propertyInfo.PropertyType; } } } } object obj = JsonMapper.array_metadata_lock; lock (obj) { try { JsonMapper.array_metadata.Add(type, value); } catch (ArgumentException) { } } }
// Token: 0x060024BF RID: 9407 RVA: 0x000B54A0 File Offset: 0x000B38A0 private static void AddTypeProperties(Type type) { if (JsonMapper.type_properties.ContainsKey(type)) { return; } IList <PropertyMetadata> list = new List <PropertyMetadata>(); foreach (PropertyInfo propertyInfo in JsonMapper.GetPublicInstanceProperties(type)) { if (!(propertyInfo.Name == "Item")) { list.Add(new PropertyMetadata { Info = propertyInfo, IsField = false }); } } foreach (FieldInfo info in type.GetFields()) { list.Add(new PropertyMetadata { Info = info, IsField = true }); } object obj = JsonMapper.type_properties_lock; lock (obj) { try { JsonMapper.type_properties.Add(type, list); } catch (ArgumentException) { } } }