public ReverseProxyConfigManager(
     ILogger <ReverseProxyConfigManager> logger,
     IDynamicConfigBuilder configBuilder,
     IRuntimeRouteBuilder routeEndpointBuilder,
     IClusterManager clusterManager,
     IRouteManager routeManager,
     IProxyDynamicEndpointDataSource dynamicEndpointDataSource)
 {
     _logger                    = logger ?? throw new ArgumentNullException(nameof(logger));
     _configBuilder             = configBuilder ?? throw new ArgumentNullException(nameof(configBuilder));
     _routeEndpointBuilder      = routeEndpointBuilder ?? throw new ArgumentNullException(nameof(routeEndpointBuilder));
     _clusterManager            = clusterManager ?? throw new ArgumentNullException(nameof(clusterManager));
     _routeManager              = routeManager ?? throw new ArgumentNullException(nameof(routeManager));
     _dynamicEndpointDataSource = dynamicEndpointDataSource ?? throw new ArgumentNullException(nameof(dynamicEndpointDataSource));
 }
        public ReverseProxyConfigManager(
            ILogger <ReverseProxyConfigManager> logger,
            IDynamicConfigBuilder configBuilder,
            IRuntimeRouteBuilder routeEndpointBuilder,
            IBackendManager backendManager,
            IRouteManager routeManager,
            IProxyDynamicEndpointDataSource dynamicEndpointDataSource)
        {
            Contracts.CheckValue(logger, nameof(logger));
            Contracts.CheckValue(configBuilder, nameof(configBuilder));
            Contracts.CheckValue(routeEndpointBuilder, nameof(routeEndpointBuilder));
            Contracts.CheckValue(backendManager, nameof(backendManager));
            Contracts.CheckValue(routeManager, nameof(routeManager));
            Contracts.CheckValue(dynamicEndpointDataSource, nameof(dynamicEndpointDataSource));

            _logger                    = logger;
            _configBuilder             = configBuilder;
            _routeEndpointBuilder      = routeEndpointBuilder;
            _backendManager            = backendManager;
            _routeManager              = routeManager;
            _dynamicEndpointDataSource = dynamicEndpointDataSource;
        }