/// <summary> /// Initializes a new instance of the <see cref="Endpoints"/> class. /// </summary> /// <param name="serviceTypes">Instances of <see cref="IRepresentServiceType"/>.</param> /// <param name="configuration"><see cref="EndpointsConfiguration"/> for all endpoints.</param> /// <param name="typeFinder"><see cref="ITypeFinder"/> for finding services to host.</param> /// <param name="container"><see cref="IContainer"/> for working with instances of host binders.</param> /// <param name="boundServices"><see cref="IBoundServices"/> for registering services that gets bound.</param> /// <param name="logger"><see cref="ILogger"/> for logging.</param> public Endpoints( IInstancesOf <IRepresentServiceType> serviceTypes, EndpointsConfiguration configuration, ITypeFinder typeFinder, IContainer container, IBoundServices boundServices, ILogger logger) { _configuration = configuration; _serviceRepresentersForEndpointVisibility = serviceTypes.GroupBy(_ => _.Visibility) .ToDictionary(_ => _.Key, _ => _.ToList()); _typeFinder = typeFinder; _container = container; _logger = logger; _boundServices = boundServices; }