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); }
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); }