public static MemberSerialization GetObjectMemberSerialization( Type objectType, bool ignoreSerializableAttribute) { JsonObjectAttribute cachedAttribute = JsonTypeReflector.GetCachedAttribute <JsonObjectAttribute>((object)objectType); if (cachedAttribute != null) { return(cachedAttribute.MemberSerialization); } return(!ignoreSerializableAttribute && JsonTypeReflector.IsSerializable((object)objectType) ? MemberSerialization.Fields : MemberSerialization.OptOut); }
public static JsonConverter GetJsonConverter(object attributeProvider) { JsonConverterAttribute cachedAttribute = JsonTypeReflector.GetCachedAttribute <JsonConverterAttribute>(attributeProvider); if (cachedAttribute != null) { Func <object[], object> func = JsonTypeReflector.CreatorCache.Get(cachedAttribute.ConverterType); if (func != null) { return((JsonConverter)func(cachedAttribute.ConverterParameters)); } } return((JsonConverter)null); }
internal JsonContainerContract(Type underlyingType) : base(underlyingType) { JsonContainerAttribute cachedAttribute = JsonTypeReflector.GetCachedAttribute <JsonContainerAttribute>((object)underlyingType); if (cachedAttribute == null) { return; } if (cachedAttribute.ItemConverterType != null) { this.ItemConverter = JsonTypeReflector.CreateJsonConverterInstance(cachedAttribute.ItemConverterType, cachedAttribute.ItemConverterParameters); } this.ItemIsReference = cachedAttribute._itemIsReference; this.ItemReferenceLoopHandling = cachedAttribute._itemReferenceLoopHandling; this.ItemTypeNameHandling = cachedAttribute._itemTypeNameHandling; }
public static bool IsSerializable(object provider) { return(JsonTypeReflector.GetCachedAttribute <SerializableAttribute>(provider) != null); }