<PackageReference Include="System.Text.Json" Version="9.0.5" />

IEnumerableDefaultConverter<TCollection, TElement>

abstract class IEnumerableDefaultConverter<TCollection, TElement> : JsonCollectionConverter<TCollection, TElement> where TCollection : IEnumerable<TElement>
using System.Collections.Generic; namespace System.Text.Json.Serialization.Converters { internal abstract class IEnumerableDefaultConverter<TCollection, TElement> : JsonCollectionConverter<TCollection, TElement> where TCollection : IEnumerable<TElement> { internal override bool CanHaveMetadata => true; protected override bool OnWriteResume(Utf8JsonWriter writer, TCollection value, JsonSerializerOptions options, ref WriteStack state) { IEnumerator<TElement> enumerator; if (state.Current.CollectionEnumerator == null) { enumerator = value.GetEnumerator(); state.Current.CollectionEnumerator = enumerator; if (!enumerator.MoveNext()) { enumerator.Dispose(); return true; } } else enumerator = (IEnumerator<TElement>)state.Current.CollectionEnumerator; JsonConverter<TElement> elementConverter = JsonCollectionConverter<TCollection, TElement>.GetElementConverter(ref state); do { if (JsonConverter.ShouldFlush(ref state, writer)) return false; TElement value2 = enumerator.Current; if (!elementConverter.TryWrite(writer, ref value2, options, ref state)) return false; state.Current.EndCollectionElement(); } while (enumerator.MoveNext()); enumerator.Dispose(); return true; } } }