public DownloadManager(IDownloadSettings downloadSettings, IDownloadStreamManager downloadStreamManager, INetworkProtocolProviderFactory networkProtocolProviderFactory, IEventManager eventManager) { if (downloadSettings == null) { throw new ArgumentNullException("downloadSettings"); } m_DownloadTaskList = new DownloadTaskList(); m_DownloadTaskQueue = new DownloadTaskQueue(downloadSettings.MaximumConcurrentDownloads); m_DownloadSettings = downloadSettings; m_LocalFileDownloadStreamManager = downloadStreamManager; m_NetworkProtocolProviderFactory = networkProtocolProviderFactory; m_EventManager = eventManager; }