5 writes to Current
System.Text.Json (5)
System\Text\Json\Serialization\WriteStack.cs (5)
200Current = default; 214Current = _stack[_count - _indexOffset]; 261Current = _stack[currentIndex]; 269Current = _stack[_count - _indexOffset]; 404AppendStackFrame(sb, ref Current);
187 references to Current
System.Text.Json (187)
System\Text\Json\Serialization\Converters\Collection\ArrayConverter.cs (5)
36int index = state.Current.EnumeratorIndex; 39if (elementConverter.CanUseDirectReadOrWrite && state.Current.NumberHandling == null) 54state.Current.EnumeratorIndex = index; 58state.Current.EndCollectionElement(); 62state.Current.EnumeratorIndex = ++index;
System\Text\Json\Serialization\Converters\Collection\DictionaryDefaultConverter.cs (8)
28if (state.Current.CollectionEnumerator == null) 31state.Current.CollectionEnumerator = enumerator; 40enumerator = (IEnumerator<KeyValuePair<TKey, TValue>>)state.Current.CollectionEnumerator; 43JsonTypeInfo typeInfo = state.Current.JsonTypeInfo; 54if (state.Current.PropertyState < StackFramePropertyState.Name) 56state.Current.PropertyState = StackFramePropertyState.Name; 58_keyConverter.WriteAsPropertyNameCore(writer, key, options, state.Current.IsWritingExtensionDataProperty); 67state.Current.EndDictionaryEntry();
System\Text\Json\Serialization\Converters\Collection\DictionaryOfTKeyTValueConverter.cs (11)
44if (state.Current.CollectionEnumerator == null) 55enumerator = (Dictionary<TKey, TValue>.Enumerator)state.Current.CollectionEnumerator; 58JsonTypeInfo typeInfo = state.Current.JsonTypeInfo; 62if (!state.SupportContinuation && _valueConverter.CanUseDirectReadOrWrite && state.Current.NumberHandling == null) 68_keyConverter.WriteAsPropertyNameCore(writer, key, options, state.Current.IsWritingExtensionDataProperty); 78state.Current.CollectionEnumerator = enumerator; 82if (state.Current.PropertyState < StackFramePropertyState.Name) 84state.Current.PropertyState = StackFramePropertyState.Name; 87_keyConverter.WriteAsPropertyNameCore(writer, key, options, state.Current.IsWritingExtensionDataProperty); 93state.Current.CollectionEnumerator = enumerator; 97state.Current.EndDictionaryEntry();
System\Text\Json\Serialization\Converters\Collection\IAsyncEnumerableOfTConverter.cs (15)
52switch (state.Current.AsyncEnumeratorState) 58state.Current.AsyncEnumerator = enumerator; 59state.Current.AsyncEnumeratorState = AsyncEnumeratorState.Enumerating; 77Debug.Assert(state.Current.AsyncEnumerator is IAsyncEnumerator<TElement>); 78enumerator = (IAsyncEnumerator<TElement>)state.Current.AsyncEnumerator; 83state.Current.AsyncEnumeratorState = AsyncEnumeratorState.Enumerating; 89Debug.Assert(state.Current.AsyncEnumerator is null); 92state.Current.AsyncEnumeratorState = AsyncEnumeratorState.None; 97Debug.Assert(state.Current.AsyncEnumerator is IAsyncEnumerator<TElement>); 98enumerator = (IAsyncEnumerator<TElement>)state.Current.AsyncEnumerator; 119state.Current.AsyncEnumerator = null; 120state.Current.AsyncEnumeratorState = AsyncEnumeratorState.None; 127state.Current.AsyncEnumeratorState = AsyncEnumeratorState.PendingDisposal; 146state.Current.EndCollectionElement(); 156state.Current.AsyncEnumeratorState = AsyncEnumeratorState.PendingMoveNext;
System\Text\Json\Serialization\Converters\Collection\IDictionaryConverter.cs (9)
52if (state.Current.CollectionEnumerator == null) 55state.Current.CollectionEnumerator = enumerator; 63enumerator = (IDictionaryEnumerator)state.Current.CollectionEnumerator; 66JsonTypeInfo typeInfo = state.Current.JsonTypeInfo; 76if (state.Current.PropertyState < StackFramePropertyState.Name) 78state.Current.PropertyState = StackFramePropertyState.Name; 84_keyConverter.WriteAsPropertyNameCore(writer, keyString, options, state.Current.IsWritingExtensionDataProperty); 90_valueConverter.WriteAsPropertyNameCore(writer, key, options, state.Current.IsWritingExtensionDataProperty); 100state.Current.EndDictionaryEntry();
System\Text\Json\Serialization\Converters\Collection\IEnumerableConverter.cs (4)
46if (state.Current.CollectionEnumerator == null) 49state.Current.CollectionEnumerator = enumerator; 57enumerator = state.Current.CollectionEnumerator; 74state.Current.EndCollectionElement();
System\Text\Json\Serialization\Converters\Collection\IEnumerableDefaultConverter.cs (5)
22if (state.Current.CollectionEnumerator == null) 25state.Current.CollectionEnumerator = enumerator; 34Debug.Assert(state.Current.CollectionEnumerator is IEnumerator<TElement>); 35enumerator = (IEnumerator<TElement>)state.Current.CollectionEnumerator; 52state.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)
57Debug.Assert(state.Current.JsonPropertyInfo != null); 58return (JsonConverter<TElement>)state.Current.JsonPropertyInfo.EffectiveConverter; 306JsonTypeInfo jsonTypeInfo = state.Current.JsonTypeInfo; 308if (!state.Current.ProcessedStartToken) 310state.Current.ProcessedStartToken = true; 316state.Current.MetadataPropertyName = JsonSerializer.WriteMetadataForCollection(this, ref state, writer); 321state.Current.JsonPropertyInfo = jsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo; 327if (!state.Current.ProcessedEndToken) 329state.Current.ProcessedEndToken = true; 332if (state.Current.MetadataPropertyName != 0)
System\Text\Json\Serialization\Converters\Collection\JsonDictionaryConverter.cs (6)
346JsonTypeInfo jsonTypeInfo = state.Current.JsonTypeInfo; 348if (!state.Current.ProcessedStartToken) 350state.Current.ProcessedStartToken = true; 361state.Current.JsonPropertyInfo = jsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo; 367if (!state.Current.ProcessedEndToken) 369state.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)
54int index = state.Current.EnumeratorIndex; 58if (elementConverter.CanUseDirectReadOrWrite && state.Current.NumberHandling == null) 72state.Current.EnumeratorIndex = index; 76state.Current.EndCollectionElement(); 80state.Current.EnumeratorIndex = ++index;
System\Text\Json\Serialization\Converters\Collection\StackOrQueueConverter.cs (4)
46if (state.Current.CollectionEnumerator == null) 49state.Current.CollectionEnumerator = enumerator; 57enumerator = state.Current.CollectionEnumerator; 74state.Current.EndCollectionElement();
System\Text\Json\Serialization\Converters\FSharp\FSharpOptionConverter.cs (2)
63state.Current.JsonPropertyInfo = state.Current.JsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo;
System\Text\Json\Serialization\Converters\FSharp\FSharpUnionConverter.cs (2)
442state.Current.JsonPropertyInfo = field.PropertyInfoForTypeInfo; 443state.Current.NumberHandling = field.NumberHandling;
System\Text\Json\Serialization\Converters\FSharp\FSharpValueOptionConverter.cs (2)
64state.Current.JsonPropertyInfo = state.Current.JsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo;
System\Text\Json\Serialization\Converters\JsonMetadataServicesConverter.cs (2)
53JsonTypeInfo jsonTypeInfo = state.Current.JsonTypeInfo; 58!JsonHelpers.RequiresSpecialNumberHandlingOnWrite(state.Current.NumberHandling) &&
System\Text\Json\Serialization\Converters\Object\ObjectDefaultConverter.cs (24)
328JsonTypeInfo jsonTypeInfo = state.Current.JsonTypeInfo; 349state.Current.JsonPropertyInfo = jsonPropertyInfo; 350state.Current.NumberHandling = jsonPropertyInfo.EffectiveNumberHandling; 356state.Current.EndProperty(); 365state.Current.JsonPropertyInfo = extensionDataProperty; 366state.Current.NumberHandling = extensionDataProperty.EffectiveNumberHandling; 371state.Current.EndProperty(); 378if (!state.Current.ProcessedStartToken) 389state.Current.ProcessedStartToken = true; 393while (state.Current.EnumeratorIndex < propertyCache.Length) 395JsonPropertyInfo jsonPropertyInfo = propertyCache[state.Current.EnumeratorIndex]; 398state.Current.JsonPropertyInfo = jsonPropertyInfo; 399state.Current.NumberHandling = jsonPropertyInfo.EffectiveNumberHandling; 407state.Current.EndProperty(); 408state.Current.EnumeratorIndex++; 417state.Current.EnumeratorIndex++; 422if (state.Current.EnumeratorIndex == propertyCache.Length) 428state.Current.JsonPropertyInfo = extensionDataProperty; 429state.Current.NumberHandling = extensionDataProperty.EffectiveNumberHandling; 436state.Current.EndProperty(); 437state.Current.EnumeratorIndex++; 446state.Current.EnumeratorIndex++; 450if (!state.Current.ProcessedEndToken) 452state.Current.ProcessedEndToken = true;
System\Text\Json\Serialization\Converters\Union\JsonUnionConverter.cs (2)
172JsonTypeInfo<TUnion> typeInfo = (JsonTypeInfo<TUnion>)state.Current.JsonTypeInfo; 192state.Current.JsonPropertyInfo = caseTypeInfo.PropertyInfoForTypeInfo;
System\Text\Json\Serialization\Converters\Value\NullableConverter.cs (2)
60state.Current.JsonPropertyInfo = state.Current.JsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo;
System\Text\Json\Serialization\JsonConverter.MetadataHandling.cs (6)
92switch (state.Current.PolymorphicSerializationState) 102jsonTypeInfo = state.Current.InitializePolymorphicReEntry(runtimeType, options); 112polymorphicConverter = state.Current.InitializePolymorphicReEntry(derivedJsonTypeInfo); 129state.Current.PolymorphicSerializationState = PolymorphicSerializationState.PolymorphicReEntryNotFound; 136polymorphicConverter = state.Current.ResumePolymorphicReEntry(); 179state.Current.IsPushedReferenceForCycleDetection = state.CurrentDepth > 0;
System\Text\Json\Serialization\JsonConverterOfT.cs (20)
348if (state.Current.NumberHandling != null && IsInternalConverterForNumberType) 350WriteNumberWithCustomHandling(writer, value, state.Current.NumberHandling.Value); 375state.Current.PolymorphicSerializationState != PolymorphicSerializationState.PolymorphicReEntryStarted) 395state.Current.ExitPolymorphicConverter(success); 399if (state.Current.IsPushedReferenceForCycleDetection) 402state.Current.IsPushedReferenceForCycleDetection = false; 412JsonTypeInfo originalJsonTypeInfo = state.Current.JsonTypeInfo; 415Debug.Assert(Type == state.Current.JsonTypeInfo.Type); 421Debug.Assert(state.Current.OriginalDepth == 0); 422state.Current.OriginalDepth = writer.CurrentDepth; 429VerifyWrite(state.Current.OriginalDepth, writer); 434if (success && state.Current.IsPushedReferenceForCycleDetection) 437state.Current.IsPushedReferenceForCycleDetection = false; 440Debug.Assert(ReferenceEquals(originalJsonTypeInfo, state.Current.JsonTypeInfo)); 480Debug.Assert(state.Current.OriginalDepth == 0); 481state.Current.OriginalDepth = writer.CurrentDepth; 485state.Current.IsWritingExtensionDataProperty = true; 486state.Current.JsonPropertyInfo = state.Current.JsonTypeInfo.ElementTypeInfo!.PropertyInfoForTypeInfo; 491VerifyWrite(state.Current.OriginalDepth, writer);
System\Text\Json\Serialization\Metadata\JsonPropertyInfoOfT.cs (5)
214ThrowHelper.ThrowJsonException_PropertyGetterDisallowNull(Name, state.Current.JsonTypeInfo.Type); 219if (state.Current.PropertyState < StackFramePropertyState.Name) 221state.Current.PropertyState = StackFramePropertyState.Name; 241if (state.Current.PropertyState < StackFramePropertyState.Name) 243state.Current.PropertyState = StackFramePropertyState.Name;
System\Text\Json\Serialization\WriteStack.cs (26)
148Current.JsonTypeInfo = jsonTypeInfo; 149Current.JsonPropertyInfo = jsonTypeInfo.PropertyInfoForTypeInfo; 150Current.NumberHandling = Current.JsonPropertyInfo.EffectiveNumberHandling; 174Debug.Assert(Current.PolymorphicSerializationState != PolymorphicSerializationState.PolymorphicReEntryStarted); 175return _count == 0 ? Current.JsonTypeInfo : Current.JsonPropertyInfo!.JsonTypeInfo; 184Debug.Assert(Current.PolymorphicSerializationState != PolymorphicSerializationState.PolymorphicReEntrySuspended); 186if (_count == 0 && Current.PolymorphicSerializationState == PolymorphicSerializationState.None) 195JsonTypeInfo jsonTypeInfo = Current.GetNestedJsonTypeInfo(); 196JsonNumberHandling? numberHandling = Current.NumberHandling; 199_stack[_count - _indexOffset] = Current; 203Current.JsonTypeInfo = jsonTypeInfo; 204Current.JsonPropertyInfo = jsonTypeInfo.PropertyInfoForTypeInfo; 206Current.NumberHandling = numberHandling ?? Current.JsonPropertyInfo.EffectiveNumberHandling; 260_stack[currentIndex + 1] = Current; 282Debug.Assert(Current.AsyncEnumerator is null); 283DisposeFrame(Current.CollectionEnumerator, ref exception); 296Debug.Assert(_stack[i].CollectionEnumerator is null || ReferenceEquals(Current.CollectionEnumerator, _stack[i].CollectionEnumerator)); 333exception = await DisposeFrame(Current.CollectionEnumerator, Current.AsyncEnumerator, exception).ConfigureAwait(false); 345Debug.Assert(_stack[i].CollectionEnumerator is null || ReferenceEquals(Current.CollectionEnumerator, _stack[i].CollectionEnumerator)); 346Debug.Assert(_stack[i].AsyncEnumerator is null || ReferenceEquals(Current.AsyncEnumerator, _stack[i].AsyncEnumerator)); 439private string DebuggerDisplay => $"Path = {PropertyPath()} Current = ConverterStrategy.{Current.JsonPropertyInfo?.EffectiveConverter.ConverterStrategy}, {Current.JsonTypeInfo?.Type.Name}";
System\Text\Json\ThrowHelper.Serialization.cs (2)
667Type propertyType = state.Current.JsonPropertyInfo?.PropertyType ?? state.Current.JsonTypeInfo.Type;