public object Resolve(Type type, ResolutionContext resolutionContext) { RegistrationEntry registrationEntry = this.repository.GetRegistrationEntry(type); if (registrationEntry != null) { return this.ResolveRegistrationEntry(registrationEntry, resolutionContext); } else { registrationEntry = this.AddDefaultRegistrationEntry(type); return this.ResolveRegistrationEntry(registrationEntry, resolutionContext); } }
private object ResolveRegistrationEntry(RegistrationEntry registrationEntry, ResolutionContext resolutionContext) { var value = registrationEntry.Lifetime.GetValue(resolutionContext, () => registrationEntry.Factory.CreateObject(this, resolutionContext)); return value; }