Beispiel #1
0
        internal static void AddRegistration(Registration dr)
        {
            if (StaticLogger.Level != StaticLogger.LoggingLevel.None)
            {
                StaticLogger.Log($"DI: Registering {dr.RegisteredType.FullName} => { dr.ToInstantiate.FullName} ({dr.ServiceProvider.Name})", StaticLogger.LoggingLevel.Call);
            }

            if (!Registrations.TryGetValue(dr.RegisteredType, out ConcurrentList <Registration> registrations))
            {
                registrations = new ConcurrentList <Registration>();
                Registrations.TryAdd(dr.RegisteredType, registrations);
            }

            ResolvableTypes.TryRemove(dr.RegisteredType, out _);

            registrations.Insert(0, dr);

            return;
        }