5 writes to Current
System.Text.Json (5)
System\Text\Json\Serialization\WriteStack.cs (5)
201Current = default; 215Current = _stack[_count - _indexOffset]; 261Current = _stack[currentIndex]; 269Current = _stack[_count - _indexOffset]; 408AppendStackFrame(sb, ref Current);
178 references to Current
System.Text.Json (178)
System\Text\Json\Serialization\Converters\Collection\ArrayConverter.cs (5)
35int index = state.Current.EnumeratorIndex; 38if (elementConverter.CanUseDirectReadOrWrite && state.Current.NumberHandling == null) 53state.Current.EnumeratorIndex = index; 57state.Current.EndCollectionElement(); 61state.Current.EnumeratorIndex = ++index;
System\Text\Json\Serialization\Converters\Collection\DictionaryDefaultConverter.cs (9)
28if (state.Current.CollectionEnumerator == null) 39enumerator = (IEnumerator<KeyValuePair<TKey, TValue>>)state.Current.CollectionEnumerator; 42JsonTypeInfo typeInfo = state.Current.JsonTypeInfo; 50state.Current.CollectionEnumerator = enumerator; 54if (state.Current.PropertyState < StackFramePropertyState.Name) 56state.Current.PropertyState = StackFramePropertyState.Name; 58_keyConverter.WriteAsPropertyNameCore(writer, key, options, state.Current.IsWritingExtensionDataProperty); 64state.Current.CollectionEnumerator = enumerator; 68state.Current.EndDictionaryEntry();
System\Text\Json\Serialization\Converters\Collection\DictionaryOfTKeyTValueConverter.cs (11)
32if (state.Current.CollectionEnumerator == null) 43enumerator = (Dictionary<TKey, TValue>.Enumerator)state.Current.CollectionEnumerator; 46JsonTypeInfo typeInfo = state.Current.JsonTypeInfo; 50if (!state.SupportContinuation && _valueConverter.CanUseDirectReadOrWrite && state.Current.NumberHandling == null) 56_keyConverter.WriteAsPropertyNameCore(writer, key, options, state.Current.IsWritingExtensionDataProperty); 66state.Current.CollectionEnumerator = enumerator; 70if (state.Current.PropertyState < StackFramePropertyState.Name) 72state.Current.PropertyState = StackFramePropertyState.Name; 75_keyConverter.WriteAsPropertyNameCore(writer, key, options, state.Current.IsWritingExtensionDataProperty); 81state.Current.CollectionEnumerator = enumerator; 85state.Current.EndDictionaryEntry();
System\Text\Json\Serialization\Converters\Collection\IAsyncEnumerableOfTConverter.cs (9)
52if (state.Current.AsyncDisposable is null) 58state.Current.AsyncDisposable = enumerator; 76Debug.Assert(state.Current.AsyncDisposable is IAsyncEnumerator<TElement>); 77enumerator = (IAsyncEnumerator<TElement>)state.Current.AsyncDisposable; 79if (state.Current.AsyncEnumeratorIsPendingCompletion) 84state.Current.AsyncEnumeratorIsPendingCompletion = false; 105state.Current.AsyncDisposable = null; 121state.Current.EndCollectionElement(); 131state.Current.AsyncEnumeratorIsPendingCompletion = true;
System\Text\Json\Serialization\Converters\Collection\IDictionaryConverter.cs (10)
45if (state.Current.CollectionEnumerator == null) 55enumerator = (IDictionaryEnumerator)state.Current.CollectionEnumerator; 58JsonTypeInfo typeInfo = state.Current.JsonTypeInfo; 65state.Current.CollectionEnumerator = enumerator; 69if (state.Current.PropertyState < StackFramePropertyState.Name) 71state.Current.PropertyState = StackFramePropertyState.Name; 77_keyConverter.WriteAsPropertyNameCore(writer, keyString, options, state.Current.IsWritingExtensionDataProperty); 83_valueConverter.WriteAsPropertyNameCore(writer, key, options, state.Current.IsWritingExtensionDataProperty); 90state.Current.CollectionEnumerator = enumerator; 94state.Current.EndDictionaryEntry();
System\Text\Json\Serialization\Converters\Collection\IEnumerableConverter.cs (5)
46if (state.Current.CollectionEnumerator == null) 56enumerator = state.Current.CollectionEnumerator; 64state.Current.CollectionEnumerator = enumerator; 71state.Current.CollectionEnumerator = enumerator; 75state.Current.EndCollectionElement();
System\Text\Json\Serialization\Converters\Collection\IEnumerableDefaultConverter.cs (6)
22if (state.Current.CollectionEnumerator == null) 33Debug.Assert(state.Current.CollectionEnumerator is IEnumerator<TElement>); 34enumerator = (IEnumerator<TElement>)state.Current.CollectionEnumerator; 42state.Current.CollectionEnumerator = enumerator; 49state.Current.CollectionEnumerator = enumerator; 53state.Current.EndCollectionElement();
System\Text\Json\Serialization\Converters\Collection\IListConverter.cs (5)
44int index = state.Current.EnumeratorIndex; 47if (elementConverter.CanUseDirectReadOrWrite && state.Current.NumberHandling == null) 62state.Current.EnumeratorIndex = index; 66state.Current.EndCollectionElement(); 70state.Current.EnumeratorIndex = ++index;
System\Text\Json\Serialization\Converters\Collection\JsonCollectionConverter.cs (10)
53Debug.Assert(state.Current.JsonPropertyInfo != null); 54return (JsonConverter<TElement>)state.Current.JsonPropertyInfo.EffectiveConverter; 296if (!state.Current.ProcessedStartToken) 298state.Current.ProcessedStartToken = true; 302state.Current.MetadataPropertyName = JsonSerializer.WriteMetadataForCollection(this, ref state, writer); 307state.Current.JsonPropertyInfo = state.Current.JsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo; 313if (!state.Current.ProcessedEndToken) 315state.Current.ProcessedEndToken = true; 318if (state.Current.MetadataPropertyName != 0)
System\Text\Json\Serialization\Converters\Collection\JsonDictionaryConverter.cs (6)
340if (!state.Current.ProcessedStartToken) 342state.Current.ProcessedStartToken = true; 350state.Current.JsonPropertyInfo = state.Current.JsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo; 356if (!state.Current.ProcessedEndToken) 358state.Current.ProcessedEndToken = true;
System\Text\Json\Serialization\Converters\Collection\ListOfTConverter.cs (5)
41int index = state.Current.EnumeratorIndex; 44if (elementConverter.CanUseDirectReadOrWrite && state.Current.NumberHandling == null) 59state.Current.EnumeratorIndex = index; 63state.Current.EndCollectionElement(); 67state.Current.EnumeratorIndex = ++index;
System\Text\Json\Serialization\Converters\Collection\ReadOnlyMemoryConverter.cs (5)
53int index = state.Current.EnumeratorIndex; 57if (elementConverter.CanUseDirectReadOrWrite && state.Current.NumberHandling == null) 71state.Current.EnumeratorIndex = index; 75state.Current.EndCollectionElement(); 79state.Current.EnumeratorIndex = ++index;
System\Text\Json\Serialization\Converters\Collection\StackOrQueueConverter.cs (5)
46if (state.Current.CollectionEnumerator == null) 56enumerator = state.Current.CollectionEnumerator; 64state.Current.CollectionEnumerator = enumerator; 71state.Current.CollectionEnumerator = enumerator; 75state.Current.EndCollectionElement();
System\Text\Json\Serialization\Converters\FSharp\FSharpOptionConverter.cs (2)
62state.Current.JsonPropertyInfo = state.Current.JsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo;
System\Text\Json\Serialization\Converters\FSharp\FSharpValueOptionConverter.cs (2)
63state.Current.JsonPropertyInfo = state.Current.JsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo;
System\Text\Json\Serialization\Converters\JsonMetadataServicesConverter.cs (2)
50JsonTypeInfo jsonTypeInfo = state.Current.JsonTypeInfo; 55!JsonHelpers.RequiresSpecialNumberHandlingOnWrite(state.Current.NumberHandling) &&
System\Text\Json\Serialization\Converters\Object\ObjectDefaultConverter.cs (24)
320JsonTypeInfo jsonTypeInfo = state.Current.JsonTypeInfo; 343state.Current.JsonPropertyInfo = jsonPropertyInfo; 344state.Current.NumberHandling = jsonPropertyInfo.EffectiveNumberHandling; 350state.Current.EndProperty(); 359state.Current.JsonPropertyInfo = extensionDataProperty; 360state.Current.NumberHandling = extensionDataProperty.EffectiveNumberHandling; 365state.Current.EndProperty(); 372if (!state.Current.ProcessedStartToken) 383state.Current.ProcessedStartToken = true; 387while (state.Current.EnumeratorIndex < propertyList.Count) 389JsonPropertyInfo jsonPropertyInfo = propertyList[state.Current.EnumeratorIndex].Value; 392state.Current.JsonPropertyInfo = jsonPropertyInfo; 393state.Current.NumberHandling = jsonPropertyInfo.EffectiveNumberHandling; 401state.Current.EndProperty(); 402state.Current.EnumeratorIndex++; 411state.Current.EnumeratorIndex++; 416if (state.Current.EnumeratorIndex == propertyList.Count) 422state.Current.JsonPropertyInfo = extensionDataProperty; 423state.Current.NumberHandling = extensionDataProperty.EffectiveNumberHandling; 430state.Current.EndProperty(); 431state.Current.EnumeratorIndex++; 440state.Current.EnumeratorIndex++; 444if (!state.Current.ProcessedEndToken) 446state.Current.ProcessedEndToken = true;
System\Text\Json\Serialization\Converters\Value\NullableConverter.cs (2)
57state.Current.JsonPropertyInfo = state.Current.JsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo;
System\Text\Json\Serialization\JsonConverter.MetadataHandling.cs (6)
78switch (state.Current.PolymorphicSerializationState) 88jsonTypeInfo = state.Current.InitializePolymorphicReEntry(runtimeType, options); 98polymorphicConverter = state.Current.InitializePolymorphicReEntry(derivedJsonTypeInfo); 115state.Current.PolymorphicSerializationState = PolymorphicSerializationState.PolymorphicReEntryNotFound; 122polymorphicConverter = state.Current.ResumePolymorphicReEntry(); 158state.Current.IsPushedReferenceForCycleDetection = state.CurrentDepth > 0;
System\Text\Json\Serialization\JsonConverterOfT.cs (20)
352if (state.Current.NumberHandling != null && IsInternalConverterForNumberType) 354WriteNumberWithCustomHandling(writer, value, state.Current.NumberHandling.Value); 379state.Current.PolymorphicSerializationState != PolymorphicSerializationState.PolymorphicReEntryStarted) 399state.Current.ExitPolymorphicConverter(success); 403if (state.Current.IsPushedReferenceForCycleDetection) 406state.Current.IsPushedReferenceForCycleDetection = false; 416JsonTypeInfo originalJsonTypeInfo = state.Current.JsonTypeInfo; 419Debug.Assert(Type == state.Current.JsonTypeInfo.Type); 425Debug.Assert(state.Current.OriginalDepth == 0); 426state.Current.OriginalDepth = writer.CurrentDepth; 433VerifyWrite(state.Current.OriginalDepth, writer); 438if (success && state.Current.IsPushedReferenceForCycleDetection) 441state.Current.IsPushedReferenceForCycleDetection = false; 444Debug.Assert(ReferenceEquals(originalJsonTypeInfo, state.Current.JsonTypeInfo)); 481Debug.Assert(state.Current.OriginalDepth == 0); 482state.Current.OriginalDepth = writer.CurrentDepth; 486state.Current.IsWritingExtensionDataProperty = true; 487state.Current.JsonPropertyInfo = state.Current.JsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo; 492VerifyWrite(state.Current.OriginalDepth, writer);
System\Text\Json\Serialization\Metadata\JsonPropertyInfoOfT.cs (4)
201if (state.Current.PropertyState < StackFramePropertyState.Name) 203state.Current.PropertyState = StackFramePropertyState.Name; 223if (state.Current.PropertyState < StackFramePropertyState.Name) 225state.Current.PropertyState = StackFramePropertyState.Name;
System\Text\Json\Serialization\WriteStack.cs (23)
151Current.JsonTypeInfo = jsonTypeInfo; 152Current.JsonPropertyInfo = jsonTypeInfo.PropertyInfoForTypeInfo; 153Current.NumberHandling = Current.JsonPropertyInfo.EffectiveNumberHandling; 177Debug.Assert(Current.PolymorphicSerializationState != PolymorphicSerializationState.PolymorphicReEntryStarted); 178return _count == 0 ? Current.JsonTypeInfo : Current.JsonPropertyInfo!.JsonTypeInfo; 185Debug.Assert(Current.PolymorphicSerializationState != PolymorphicSerializationState.PolymorphicReEntrySuspended); 187if (_count == 0 && Current.PolymorphicSerializationState == PolymorphicSerializationState.None) 196JsonTypeInfo jsonTypeInfo = Current.GetNestedJsonTypeInfo(); 197JsonNumberHandling? numberHandling = Current.NumberHandling; 200_stack[_count - _indexOffset] = Current; 204Current.JsonTypeInfo = jsonTypeInfo; 205Current.JsonPropertyInfo = jsonTypeInfo.PropertyInfoForTypeInfo; 207Current.NumberHandling = numberHandling ?? Current.JsonPropertyInfo.EffectiveNumberHandling; 260_stack[currentIndex + 1] = Current; 311Debug.Assert(Current.AsyncDisposable is null); 312DisposeFrame(Current.CollectionEnumerator, ref exception); 350exception = await DisposeFrame(Current.CollectionEnumerator, Current.AsyncDisposable, exception).ConfigureAwait(false); 443private string DebuggerDisplay => $"Path = {PropertyPath()} Current = ConverterStrategy.{Current.JsonPropertyInfo?.EffectiveConverter.ConverterStrategy}, {Current.JsonTypeInfo?.Type.Name}";
System\Text\Json\ThrowHelper.Serialization.cs (2)
574Type propertyType = state.Current.JsonPropertyInfo?.PropertyType ?? state.Current.JsonTypeInfo.Type;