21 private readonly ConcurrentDictionary<Type, List<MemberInfo>> _cachedBaseSerializableMembers =
22 new ConcurrentDictionary<Type, List<MemberInfo>>();
24 private readonly ConcurrentDictionary<Type, List<MemberInfo>> _cachedFilteredSerializableMembers =
25 new ConcurrentDictionary<Type, List<MemberInfo>>();
46 AllowMember ==
null ? GetBaseSerializableMembersWithCaching(objectType) :
47 GetFilteredSerializableMembersWithCaching(objectType);
53 MemberSerialization memberSerialization) =>
54 AllowMember(member) ? base.CreateProperty(member, memberSerialization) :
null;
58 private List<MemberInfo> GetBaseSerializableMembersWithCaching(Type objectType) =>
59 _cachedBaseSerializableMembers.GetOrAdd(objectType, type => base.GetSerializableMembers(type));
63 private List<MemberInfo> GetFilteredSerializableMembersWithCaching(Type objectType) =>
64 _cachedFilteredSerializableMembers.GetOrAdd(objectType, type =>
65 GetBaseSerializableMembersWithCaching(type).Where(
AllowMember).ToList());