static void Main(string[] args) { var configurator = new JsonConfigurator(); var result = configurator.LoadConfiguration <EncryptionConfiguration>(ConfigurationKeys.Encryption); var arguments = configurator.LoadConfiguration <DownloadArguments>(ConfigurationKeys.DownloadArguments); // This little stunt is done so that Encryption will load this correctly Config.Global.Add(ConfigurationKeys.Encryption, result); var ftpService = new FtpService(); var operation = ftpService.GetDownloadOperation(arguments.UserName, arguments.EncryptedPassword.Decrypt(), arguments.HostName, arguments.FtpPath, arguments.DestinationPath, TransferCallback); operation.StartDownload(); //ftpDownload.Password = arguments.EncryptedPassword; // Password = password, // HostName = hostName, }