void IRegistrationLocationSelectionSyntax <TComponent> .InsteadOf <TRegistrationType>() { if (newRegistration.ComponentType != typeof(TRegistrationType)) { registrations.EnsureNoDuplicateRegistrationType(newRegistration.ComponentType); } var registrationIndex = registrations.EnsureRegistrationExists <TRegistrationType>(); registrations.entries[registrationIndex] = newRegistration; }
void ITrackingRegistrationLocationSelectionSyntax <TComponent> .InsteadOf <TRegistrationType>() { if (newRegistration.ComponentType != typeof(TRegistrationType)) { registrations.EnsureNoDuplicateRegistrationType(newRegistration.ComponentType); } var registrationIndex = registrations.EnsureRegistrationExists <TRegistrationType>(); var innerComponentFactory = registrations.entries[registrationIndex].Factory; registrations.entries[registrationIndex] = new LazyComponentRegistration( newRegistration.ComponentType, arg => newRegistration.Factory(innerComponentFactory(arg), arg) ); }