1 instantiation of UnionCaseEntry
System.Text.Json (1)
System\Text\Json\Serialization\Metadata\DefaultJsonTypeInfoResolver.Union.cs (1)
433
return new
UnionCaseEntry
(caseType, constructor, isNullable);
29 references to UnionCaseEntry
System.Text.Json (29)
System\Text\Json\Serialization\Metadata\DefaultJsonTypeInfoResolver.Union.cs (29)
41
private readonly List<
UnionCaseEntry
> _caseEntries = new();
42
private readonly Dictionary<Type,
UnionCaseEntry
> _entryByCaseType = new();
125
UnionCaseEntry
entry = CreateUnionCaseEntry(paramType, ctor, acceptsNull);
156
UnionCaseEntry
[] orderedCases = BuildTopologicallySortedCaseEntries();
157
ConcurrentDictionary<Type,
UnionCaseEntry
?> caseIndex = CreateCaseIndex(orderedCases);
167
UnionCaseEntry
? nullableCase = null;
168
foreach (
UnionCaseEntry
entry in _caseEntries)
181
private
UnionCaseEntry
[] BuildTopologicallySortedCaseEntries()
190
UnionCaseEntry
[] orderedCases = new
UnionCaseEntry
[orderedCaseTypes.Length];
199
private static ConcurrentDictionary<Type,
UnionCaseEntry
?> CreateCaseIndex(
UnionCaseEntry
[] orderedCases)
201
var caseIndex = new ConcurrentDictionary<Type,
UnionCaseEntry
?>();
202
foreach (
UnionCaseEntry
entry in orderedCases)
214
UnionCaseEntry
[] orderedCases,
215
ConcurrentDictionary<Type,
UnionCaseEntry
?> caseIndex,
217
UnionCaseEntry
? nullableCase)
258
UnionCaseEntry
? entry = ResolveUnionCase(caseIndex, orderedCases, runtimeType);
347
UnionCaseEntry
[] orderedCases,
348
ConcurrentDictionary<Type,
UnionCaseEntry
?> caseIndex,
349
UnionCaseEntry
? nullableCase)
366
UnionCaseEntry
? entry = ResolveUnionCase(caseIndex, orderedCases, caseType);
376
private static
UnionCaseEntry
? ResolveUnionCase(
377
ConcurrentDictionary<Type,
UnionCaseEntry
?> caseIndex,
378
UnionCaseEntry
[] orderedCases,
381
if (caseIndex.TryGetValue(runtimeType, out
UnionCaseEntry
? cached))
388
UnionCaseEntry
? found = null;
389
foreach (
UnionCaseEntry
entry in orderedCases)
430
private static
UnionCaseEntry
CreateUnionCaseEntry(Type caseType, ConstructorInfo constructorInfo, bool isNullable)