// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschränkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using System; using System.Collections.Concurrent; namespace Squidex.Infrastructure { public static class Singletons { private static readonly ConcurrentDictionary Instances = new ConcurrentDictionary(StringComparer.OrdinalIgnoreCase); public static T GetOrAdd(string key, Func factory) { return Instances.GetOrAdd(key, factory); } public static Lazy GetOrAddLazy(string key, Func factory) { return new Lazy(() => Instances.GetOrAdd(key, factory)); } } }