protected override IList <JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization) { lock (_propertiesCache) { var props = base.CreateProperties(type, memberSerialization); if (_propertiesCache.TryGetValue(type, out var properties)) { return(properties); } properties = props.Where(p => p.Writable || _tyeDescription != null && _tyeDescription.IsIndexed(p.PropertyName)).ToList(); _propertiesCache[type] = properties; return(properties); } }