기본적으로 애플리케이션의 여러 인스턴스가 실행되지만 별도의 사용자 설정이 필요합니다. 우리는 현재 "사용자 설정"을 사용하고 있으며, 단일 인스턴스 (윈도우 사용자 당)에서는 잘 작동하지만 명령 행을 통해 전달 된 설정 경로와 함께 여러 인스턴스를 시작할 수 있기를 원합니다. 내장 된 .NET 설정을 사용하여이 작업을 수행 할 수있는 방법이 있습니까? 아니면 우리 고유의 .NET 설정을 롤업해야합니까?.NET에 사용자 설정 파일을 찾는 위치를 알려주는 방법이 있습니까?
답변
앱 설정을 처리하고 파일 이름을 허용하는 클래스를 개발하는 것이 좋습니다. 앱 설정이 필요한 DLL의 경우이 작업을 수행해야했으며, 설정을 로컬이 아닌 위치 (예 : 네트워크의 단일 위치)에 저장하려는 경우에도 도움이됩니다.
유연성이 뛰어납니다. 투자 가치가 있습니다!
.Net에는 Configuration Provider API가 있습니다. app.config는 해당 API의 사전 정의 된 구현입니다. API를 사용하여 내장 API를 확장하거나 직접 API를 작성해야합니다.
사용자 설정으로 파일을 관리하는 LocalFileSettingsProvider 클래스는 조정할 수 없습니다. 보안 문제에 의해 마비되었을 것임을 기록한 사람. 아마도 정당화되지 않았습니다.
System.Configuration을 계속 사용하려면 자체 공급자를 구현해야합니다. 아마도 가장 좋은 방법은 RegistrySettingsProvider sample부터 시작하는 것입니다. 파일 처리를 제대로하는 데는 도움이되지 않지만 적어도 빌드 할 것이 있습니다. 리플렉터 (Reflector)가있는 몇 가지 픽을 통해 도움을받을 수 있습니다.
나는 DB에 설정 정보를 저장하고 사용자를 기반으로 읽을 것을 제안합니다. 어떤 경우에는 사용자 별 정보를 다른 사본으로 유지해야합니다. 응용 프로그램의 부하가 DB에서 읽고 모든 설정을 캐시합니다.
정보를 검색하는 사용자 사용자 설정 및 프로필 API. 사용자 시스템에있는 파일을 처리하는 대신 DB의 정보를 업데이트하는 것은 매우 쉽습니다.
사용자 설정 공급자가있는 흥미로운 CodeProject article가 있습니다. 코드를 조금만 수정하면 설정을 저장하고 제공 한 파일 위치로로드 할 수 있습니다.