internal TypeModifierData TryGetTypeModifierData(Type t, MappingSides side) { TypeModifierData data; var key = new TypeDataCacheKey { Type = t, Side = side }; if (!TypeModifierCache.TryGetValue(key, out data)) { var item = TypeModifierCache.FirstOrDefault(s => s.Key.Type.IsAssignableFrom(t)); data = item.Value; } return(data); }
internal void AddTypeModifierData(TypeModifierData data, MappingSides side) { TypeModifierData current; var key = new TypeDataCacheKey { Type = data.Type, Side = side }; if (TypeModifierCache.TryGetValue(key, out current)) { current.Message = data.Message ?? current.Message; current.ThrowIfCondition = data.ThrowIfCondition ?? current.ThrowIfCondition; } else { TypeModifierCache[key] = data; } }