Ich habe eine C# .Net-Konsole App, die FTP-Operationen ausführt. Derzeit spezifiziere ich die Einstellungen in einem benutzerdefinierten Konfigurationsabschnitt, z.externe Konfigurationsdatei lesen
<?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>
Ich möchte in der Befehlszeile eine externe Konfigurationsdatei angeben.
JEDOCH !!! ...
Ich habe erkannt, dass die oben „FtpConfiguration“ Abschnitt nicht wirklich in der app.config der Anwendung gehören nicht. Mein Ziel ist, dass ich viele geplante Aufgaben haben, die meine Konsole App wie folgt ausführen:
FileTransferHelper.exe -c FtpApplication1.config
FileTransferHelper.exe -c FtpApplication2.config
...
FileTransferHelper.exe -c FtpApplication99.config
Folglich Ich glaube, ich habe den falschen Weg gegangen und was ich wirklich will, ist etwas in meiner Gewohnheit zu lesen XML-Dokument, aber weiterhin System.Configuration verwenden, um die Werte zu erhalten ... im Gegensatz zu einem XmlDocument lesen und serialisieren, um Knoten/Elemente/Attribute zu erhalten. (Obwohl ich nicht gegen letzteres bin, wenn mir jemand einen einfachen Code zeigen kann)
Zeiger würden sehr geschätzt werden. Vielen Dank.
Update: Die Antwort, die ich ein Link zu einer anderen Frage Stackoverflow wiederholt akzeptiert war, hier mit meinem Code - unter dem genau war, was ich gesucht habe - mit der OpenMappedExeConfiguration meiner externen Konfigurationsdatei
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");
öffnen
nur als Anmerkung, , pa rt von Linq zu Xml. – Magus