internal override bool OnTryWrite( Utf8JsonWriter writer, T value, JsonSerializerOptions options, ref WriteStack state) { JsonTypeInfo jsonTypeInfo = state.Current.JsonTypeInfo; if (jsonTypeInfo.PropertyCacheArray == null) { jsonTypeInfo.InitializeSerializePropCache(); } return(base.OnTryWrite(writer, value, options, ref state)); }
internal override bool OnTryWrite(Utf8JsonWriter writer, T value, JsonSerializerOptions options, ref WriteStack state) { JsonTypeInfo jsonTypeInfo = state.Current.JsonTypeInfo; Debug.Assert(options == jsonTypeInfo.Options); if (!state.SupportContinuation && jsonTypeInfo is JsonTypeInfo <T> info && info.Serialize != null && info.Options._context?.CanUseSerializationLogic == true) { info.Serialize(writer, value); return(true); } if (_converterStrategy == ConverterStrategy.Object && jsonTypeInfo.PropertyCacheArray == null) { jsonTypeInfo.InitializeSerializePropCache(); } return(Converter.OnTryWrite(writer, value, options, ref state)); }