암호화되어 있고 올바르게 암호 해독 할 수없는 구성 섹션에 액세스하려고하면 (예 : 누군가 다른 컴퓨터에서 구성 파일을 맹목적으로 가져 왔습니다) - Configuration
클래스에서 예외가 발생합니다. 나는 그 상황을 파악하고 그런 경우에 완전히 다시 쓰고 싶다.해독하지 않고 암호화 된 구성 섹션을 덮어 씁니까?
하지만 제거는 무시됩니다 것으로 보인다 - '캐치'의 두 번째 문은 발생 등의 섹션에 대한 또 다른 예외는 이미 존재 :
try
{
// this getter might throw an exception - e.g. if encrypted on another machine
var connStrings = config.ConnectionStrings;
}
catch (ConfigurationException)
{
config.Sections.Remove("connectionStrings");
config.Sections.Add("connectionStrings", new ConnectionStringsSection());
}
그것은 수도 실제로 연결 문자열 섹션이 별도의 파일에 있다는 사실과 관련이 있습니다. 즉, 구성 파일의 내용이 <connectionStrings configSource="connections.config"/>
인 반면 실제 암호화 된 내용은 connections.config
파일에 있습니다.
.NET 구성 클래스 만 사용하여 XML 조작을 직접적으로 처리하지 않고도 필요한 작업을 수행 할 수 있습니까?
감사합니다. 사실, connectionStrings도 컴퓨터 설정에서 가져온 것을 잊어 버렸습니다. 그렇지 않으면 내'config.Sections.Remove ("connectionStrings");가 완벽하게 정상적으로 작동했습니다. 아직 한 번 저장하거나 새로 고침 할 필요가 없습니다. 적어도, 내 경우에는이 줄이없이 작동합니다. 하지만 어쨌든 덕분에, 당신의 대답은 나를 올바른 길로 가게했습니다 :) –
오. 기묘한. 그래, 내 경우 엔 그 둘 모두가 필요해. – aquinas
내 경우에는 앱 실행을위한 설정이 아니며 다른 exe의 경우 'ConfigurationManager.OpenExeConfiguration (executablePath)'를 통해로드 된 앱입니다. 그게 이유 야. –