public DequeueNextSource ( ) : IRegistrationSource | ||
return | IRegistrationSource |
void InitializeInfo(Service service, ServiceRegistrationInfo info) { if (!info.IsInitializing) { info.BeginInitialization(_dynamicRegistrationSources); } while (info.HasSourcesToQuery) { var next = info.DequeueNextSource(); foreach (var provided in next.RegistrationsFor(service, RegistrationsFor)) { // This ensures that multiple services provided by the same // component share a single component (we don't re-query for them) foreach (var additionalService in provided.Services) { var additionalInfo = GetServiceInfo(additionalService); if (additionalInfo.IsInitialized) { continue; } if (!additionalInfo.IsInitializing) { additionalInfo.BeginInitialization(_dynamicRegistrationSources.Where(src => src != next)); } else { additionalInfo.SkipSource(next); } } AddRegistration(provided, true); } } info.CompleteInitialization(); }
void InitializeInfo(Service service, ServiceRegistrationInfo info) { if (!info.IsInitializing) info.BeginInitialization(_dynamicRegistrationSources); while (info.HasSourcesToQuery) { var next = info.DequeueNextSource(); foreach (var provided in next.RegistrationsFor(service, RegistrationsFor)) { // This ensures that multiple services provided by the same // component share a single component (we don't re-query for them) foreach (var additionalService in provided.Services) { var additionalInfo = GetServiceInfo(additionalService); if (additionalInfo.IsInitialized) continue; if (!additionalInfo.IsInitializing) additionalInfo.BeginInitialization(_dynamicRegistrationSources.Where(src => src != next)); else additionalInfo.SkipSource(next); } AddRegistration(provided, true); } } info.CompleteInitialization(); }