/// <summary> /// Add a mapping to the cache. /// </summary> /// <param name="t">The Type that this mapping belongs to.</param> /// <param name="mapping">The mapping to cache.</param> internal static void Add(Type t, ValidatedClassLevelMapping mapping) { if (cachedMappings == null) cachedMappings = new Dictionary<Type, ValidatedClassLevelMapping>(); lock (cachedMappings) { cachedMappings.Add(t, mapping); } }
internal static void Remove(ValidatedClassLevelMapping mapping) { if(cachedMappings != null) { lock (cachedMappings) { Type key = null; using (var keyEnum = cachedMappings.Keys.GetEnumerator()) { while (keyEnum.MoveNext()) { key = keyEnum.Current; var val = cachedMappings[key]; if (val == mapping) break; } } if (key != null) cachedMappings.Remove(key); } } }