public FtpManager(IChecksumCalculator checksumCalculator, ChecksumDataStorage checksumDataStorage, IFtpClientProvider ftpClientProvider, IClassLogger logger) { var ftpExecutor = new FtpCommandExecutor(ftpClientProvider, logger); _ftpContentGetter = new FtpContentGetter(ftpExecutor); _ftpDirectoryCreator = new FtpDirectoryCreator(ftpExecutor); _ftpDirectoryRemover = new FtpDirectoryRemover(ftpExecutor, _ftpContentGetter, _ftpFileRemover, logger); _ftpFileUploader = new FtpFileUploader(checksumCalculator, ftpExecutor, checksumDataStorage); _ftpDirectoryUploader = new FtpDirectoryUploader(_ftpDirectoryCreator, _ftpFileUploader, logger); _ftpExistenceChecker = new FtpExistenceChecker(ftpExecutor); _ftpFileRemover = new FtpFileRemover(ftpExecutor); _ftpTextReader = new FtpTextReader(ftpExecutor); _ftpTextUploader = new FtpTextUploader(_ftpFileUploader); }
public FtpServer(Configuration.FtpServerOptionElement configuration) : base(21) { //不要在构造方法检测参数是否空,应该在OnStart方法中检测 _configuration = configuration; _pasvDataChannelPool = new ObjectPool <FtpPasvDataChannel>(() => { var channel = new FtpPasvDataChannel(); channel.StartListener(); return(channel); }, channel => channel.StopListener()); _commandExecutor = new FtpCommandExecutor(); }
public FtpServer(Configuration.FtpServerOptionElement configuration) : base(21) { //不要在构造函数检测参数是否空,应该在OnStart方法中检测 _configuration = configuration; _pasvDataChannelPool = new ObjectPool<FtpPasvDataChannel>( () => { var channel = new FtpPasvDataChannel(); channel.StartListener(); return channel; }, channel => channel.StopListener()); _commandExecutor = new FtpCommandExecutor(); }