Example #1
0
        private KeyValuePair <ObjectContainer, IRegistration>?GetRegistrationResult(RegistrationKey keyToResolve)
        {
            IRegistration registration;

            if (registrations.TryGetValue(keyToResolve, out registration))
            {
                return(new KeyValuePair <ObjectContainer, IRegistration>(this, registration));
            }

            if (baseContainer != null)
            {
                return(baseContainer.GetRegistrationResult(keyToResolve));
            }

            if (IsSpecialNamedInstanceDictionaryKey(keyToResolve))
            {
                var targetType = keyToResolve.Type.GetGenericArguments()[1];
                return(GetRegistrationResult(CreateNamedInstanceDictionaryKey(targetType)));
            }

            // if there was no named registration, we still return an empty dictionary
            if (IsDefaultNamedInstanceDictionaryKey(keyToResolve))
            {
                return(new KeyValuePair <ObjectContainer, IRegistration>(this, new NamedInstanceDictionaryRegistration()));
            }

            return(null);
        }
Example #2
0
        private IRegistration GetRegistrationResult(RegistrationKey keyToResolve)
        {
            IRegistration registration;

            if (registrations.TryGetValue(keyToResolve, out registration))
            {
                return(registration);
            }

            if (baseContainer != null)
            {
                return(baseContainer.GetRegistrationResult(keyToResolve));
            }

            if (IsSpecialNamedInstanceDictionaryKey(keyToResolve))
            {
                var targetType = keyToResolve.Type.GetGenericArguments()[1];
                return(GetRegistrationResult(CreateNamedInstanceDictionaryKey(targetType)));
            }

            if (IsNamedInstanceDictionaryKey(keyToResolve))
            {
                return(new NamedInstanceDictionaryRegistration());
            }

            return(null);
        }