1 instantiation of UnionCaseEntry
System.Text.Json (1)
System\Text\Json\Serialization\Metadata\DefaultJsonTypeInfoResolver.Union.cs (1)
425
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();
115
if (_entryByCaseType.TryGetValue(paramType, out
UnionCaseEntry
? entry))
164
UnionCaseEntry
[] orderedCases = BuildTopologicallySortedCaseEntries();
165
ConcurrentDictionary<Type,
UnionCaseEntry
?> caseIndex = CreateCaseIndex(orderedCases);
166
UnionCaseEntry
? nullableCase = null;
167
foreach (
UnionCaseEntry
entry in orderedCases)
180
private
UnionCaseEntry
[] BuildTopologicallySortedCaseEntries()
189
UnionCaseEntry
[] orderedCases = new
UnionCaseEntry
[orderedCaseTypes.Length];
198
private static ConcurrentDictionary<Type,
UnionCaseEntry
?> CreateCaseIndex(
UnionCaseEntry
[] orderedCases)
200
var caseIndex = new ConcurrentDictionary<Type,
UnionCaseEntry
?>();
201
foreach (
UnionCaseEntry
entry in orderedCases)
213
UnionCaseEntry
[] orderedCases,
214
ConcurrentDictionary<Type,
UnionCaseEntry
?> caseIndex,
216
UnionCaseEntry
? nullableCase)
254
UnionCaseEntry
? entry = ResolveUnionCase(caseIndex, orderedCases, runtimeType);
343
UnionCaseEntry
[] orderedCases,
344
ConcurrentDictionary<Type,
UnionCaseEntry
?> caseIndex)
350
foreach (
UnionCaseEntry
entry in _caseEntries)
371
UnionCaseEntry
? entry = ResolveUnionCase(caseIndex, orderedCases, caseType);
381
private static
UnionCaseEntry
? ResolveUnionCase(
382
ConcurrentDictionary<Type,
UnionCaseEntry
?> caseIndex,
383
UnionCaseEntry
[] orderedCases,
386
if (caseIndex.TryGetValue(runtimeType, out
UnionCaseEntry
? cached))
393
UnionCaseEntry
? found = null;
394
foreach (
UnionCaseEntry
entry in orderedCases)
422
private static
UnionCaseEntry
CreateUnionCaseEntry(Type caseType, ConstructorInfo constructorInfo, bool isNullable)