void UpdateInitialisedAdapters(IComponentRegistration registration) { var adapterServices = new List <Service>(_serviceInfo.Count); foreach (var kv in _serviceInfo) { if (kv.Value.ShouldRecalculateAdaptersOn(registration)) { adapterServices.Add(kv.Key); } } if (adapterServices.Count == 0) { return; } Debug.WriteLine( "[Autofac] Component '{0}' provides services that have already been adapted. Consider refactoring to ContainerBuilder.Build() rather than Update().", registration); var drs = _dynamicRegistrationSourcesArray; if (drs == null) { drs = new IRegistrationSource[_dynamicRegistrationSources.Count]; _dynamicRegistrationSources.CopyTo(drs, 0); _dynamicRegistrationSourcesArray = drs; } var adaptationSandbox = new AdaptationSandbox( drs.Where(rs => rs.IsAdapterForIndividualComponents), registration, adapterServices); var adapters = adaptationSandbox.GetAdapters(); foreach (var adapter in adapters) { AddRegistration(adapter, true); } }
void UpdateInitialisedAdapters(IComponentRegistration registration) { var adapterServices = new List<Service>(_serviceInfo.Count); foreach (var kv in _serviceInfo) if (kv.Value.ShouldRecalculateAdaptersOn(registration)) adapterServices.Add(kv.Key); if (adapterServices.Count == 0) return; Debug.WriteLine(String.Format( "[Autofac] Component '{0}' provides services that have already been adapted. Consider refactoring to ContainerBuilder.Build() rather than Update().", registration)); var drs = _dynamicRegistrationSourcesArray; if (drs == null) { drs = new IRegistrationSource[_dynamicRegistrationSources.Count]; _dynamicRegistrationSources.CopyTo(drs, 0); _dynamicRegistrationSourcesArray = drs; } var adaptationSandbox = new AdaptationSandbox( drs.Where(rs => rs.IsAdapterForIndividualComponents), registration, adapterServices); var adapters = adaptationSandbox.GetAdapters(); foreach (var adapter in adapters) AddRegistration(adapter, true); }