private void ResolveContentsOfQueue(Queue <KeyValuePair <Type, Type> > queue, Stack <KeyValuePair <Type, Type> > stack) { while (queue.Count > 0) { KeyValuePair <Type, Type> pair = queue.Dequeue(); object instance = dependencyInjector.ResolveConcrete(pair.Value); if (instance == default) { stack.Push(pair); } else { dependencies.Singleton[pair.Key] = instance; } } }