internal ServiceData( IConfigurationSolver solver, IServiceInfo s, ConfigurationStatus serviceStatus, StartDependencyImpact impact = StartDependencyImpact.Unknown ) : this(s, serviceStatus, impact) { Family = new ServiceFamily( solver, this ); _inheritedServicesWithThis = new ServiceData[] { this }; Initialize(); }
internal ServiceData( IServiceInfo s, ServiceData generalization, ConfigurationStatus serviceStatus, StartDependencyImpact impact = StartDependencyImpact.Unknown ) : this(s, serviceStatus, impact) { Family = generalization.Family; _inheritedServicesWithThis = new ServiceData[generalization._inheritedServicesWithThis.Length + 1]; generalization._inheritedServicesWithThis.CopyTo( _inheritedServicesWithThis, 0 ); _inheritedServicesWithThis[_inheritedServicesWithThis.Length - 1] = this; Generalization = generalization; NextSpecialization = Generalization.FirstSpecialization; Generalization.FirstSpecialization = this; Initialize(); if( !Disabled ) for( int i = 0; i < _inheritedServicesWithThis.Length - 1; ++i ) ++_inheritedServicesWithThis[i].AvailableServiceCount; }