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.HasSerializeHandler && jsonTypeInfo is JsonTypeInfo <T> info && !state.CurrentContainsMetadata && // Do not use the fast path if state needs to write metadata. info.Options.SerializerContext?.CanUseSerializationLogic == true) { Debug.Assert(info.SerializeHandler != null); info.SerializeHandler(writer, value); return(true); } jsonTypeInfo.ValidateCanBeUsedForMetadataSerialization(); return(Converter.OnTryWrite(writer, value, options, ref state)); }