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