public DefaultHtmlClientProxyGenerator(IBitCodeGeneratorOrderedProjectsProvider solutionProjectsSelector, IBitCodeGeneratorMappingsProvider contextMappingsProvider, IProjectDtosProvider dtosProvider, IHtmlClientProxyDtosGenerator dtoGenerator, IHtmlClientContextGenerator contextGenerator, IProjectDtoControllersProvider dtoControllersProvider, IProjectEnumTypesProvider projectEnumTypesProvider)
        {
            if (solutionProjectsSelector == null)
            {
                throw new ArgumentNullException(nameof(solutionProjectsSelector));
            }

            if (contextMappingsProvider == null)
            {
                throw new ArgumentNullException(nameof(contextMappingsProvider));
            }

            if (dtosProvider == null)
            {
                throw new ArgumentNullException(nameof(dtosProvider));
            }

            if (dtosProvider == null)
            {
                throw new ArgumentNullException(nameof(dtosProvider));
            }

            if (projectEnumTypesProvider == null)
            {
                throw new ArgumentNullException(nameof(projectEnumTypesProvider));
            }

            if (contextGenerator == null)
            {
                throw new ArgumentNullException(nameof(contextGenerator));
            }

            if (dtoControllersProvider == null)
            {
                throw new ArgumentNullException(nameof(dtoControllersProvider));
            }

            _solutionProjectsSelector         = solutionProjectsSelector;
            _bitCodeGeneratorMappingsProvider = contextMappingsProvider;
            _dtosProvider             = dtosProvider;
            _dtoGenerator             = dtoGenerator;
            _contextGenerator         = contextGenerator;
            _dtoControllersProvider   = dtoControllersProvider;
            _projectEnumTypesProvider = projectEnumTypesProvider;
        }