示例#1
0
        /// <inheritdoc/>
        public override TimeSpan?Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
            string iso8601Input = reader.GetString();

            if (string.IsNullOrWhiteSpace(iso8601Input))
            {
                return(null);
            }
            return(Iso8601TimeSpan.Parse(iso8601Input));
        }
示例#2
0
 /// <inheritdoc/>
 public virtual bool Deserialize(IParser reader, Type expectedType, Func <IParser, Type, object> nestedObjectDeserializer, out object value)
 {
     if (expectedType != typeof(TimeSpan) &&
         expectedType != typeof(TimeSpan?))
     {
         return(this.Inner.Deserialize(reader, expectedType, nestedObjectDeserializer, out value));
     }
     if (!this.Inner.Deserialize(reader, typeof(string), nestedObjectDeserializer, out value))
     {
         return(false);
     }
     value = Iso8601TimeSpan.Parse((string)value);
     return(true);
 }