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