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
따라서, 내가 잘못된 경로 내려 갔어요 믿고 내가 정말 원하는 것은 내 사용자 지정에서 읽을 수있는 무언가이다 : 내 궁극적 인 목표는이 같은 내 콘솔 응용 프로그램을 실행 많은 예약 된 작업을해야한다는 것입니다 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");
그냥 참고로, 당신은 단지 XML을 구문 분석하기로 결정하는 경우 :을 XmlDocument는 C#에서 XML을 처리하는 기존의 방법입니다, 당신은 확실히 그것을 할 수있는 동안, 나는하여 XDocument를 사용하는 것이 좋습니다 것 , 파 rt of Linq-to-Xml. – Magus