我有执行 FTP 操作的 ac# .Net 控制台应用程序。目前,我在自定义配置部分中指定设置,例如
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="ftpConfiguration" type="FileTransferHelper.FtpLibrary.FtpConfigurationSection, FileTransferHelper.FtpLibrary" />
</configSections>
<ftpConfiguration>
<Environment name="QA">
<sourceServer hostname="QA_hostname"
username="QA_username"
password="QA_password"
port="21"
remoteDirectory ="QA_remoteDirectory" />
<targetServer downloadDirectory ="QA_downloadDirectory" />
</Environment>
</ftpConfiguration>
</configuration>
我想在命令行中指定一个外部配置文件。
然而!!!...
我刚刚意识到上面的“FtpConfiguration”部分并不真正属于应用程序的 app.config。我的最终目标是我将有许多计划任务来执行我的控制台应用程序,如下所示:
FileTransferHelper.exe -c FtpApplication1.config
FileTransferHelper.exe -c FtpApplication2.config
...
FileTransferHelper.exe -c FtpApplication99.config
因此,我相信我走错了路,我真正想要的是在我的自定义 xml 文档中读取一些内容,但继续使用 System.Configuration 来获取值......而不是读取 XmlDocument 并将其序列化为获取节点/元素/属性。(不过,如果有人可以给我看一些简单的代码,我不反对后者)
指针将不胜感激。谢谢。
更新:我接受的答案是指向另一个 StackOverflow 问题的链接,在这里用我的代码重复 - 下面正是我正在寻找的 - 使用 OpenMappedExeConfiguration 打开我的外部配置文件
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = @"D:\Development\FileTransferHelper\Configuration\SampleInterface.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
FtpConfigurationSection ftpConfig = (FtpConfigurationSection)config.GetSection("ftpConfiguration");