protected override IEnumerable <(string, object?)> GetPropertyNameAndValuesToWrite(object value, JsonSerializerOptions options)
        {
            var    baseProperties = base.GetPropertyNameAndValuesToWrite(value, options);
            object?extraProperty  = IExtraPropertyJsonConverter.GetExtraProperty(value, this.getValue);

            if (extraProperty == null)
            {
                return(baseProperties);
            }
            else
            {
                return(baseProperties.Prepend((this.name, extraProperty)));
            }
        }
 public bool WillAddExtraProperty([NotNullWhen(true)] object?arg)
 {
     return(IExtraPropertyJsonConverter.WillAddExtraProperty(arg, this.getValue));
 }