私は、FTP操作を実行するc#.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
その結果、私は私が間違ったパスの下行ってきたと考えていると私が本当にしたいことは、私のカスタムに読み込むためのものです:私の究極の目標は、私はこのように私のコンソールアプリケーションを実行し、多くのスケジュールされたタスクを持っているということですXmlDocumentを読み込み、それを直列化してノード/要素/属性を取得するのではなく、値を取得するためにSystem.Configurationを使用し続けます。 (誰かが私にいくつかの簡単なコードを表示することができれば、私は後者に反対するわけではないが)
ポインターをいただければ幸いです。ありがとう。
アップデート:私は受け入れ 答えは私のコードをここでは繰り返さ別に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");
だけのノートとして、あなただけのXMLを解析することを決定しない場合:XmlDocumentオブジェクトは、C#でXMLを扱う古い方法で、あなたは確かにそれを行うことができますが、私はXDocumentを使用してお勧めしたいです、pa Linq-to-Xmlのrt。 – Magus