Tôi có một app.exe.config tập tin cấu hình và phần appSettings có một cái gì đó như thế này:Viết appSettings trong tập tin bên ngoài
<configuration>
<appSettings configSource="app.file.config" />
</configuration>
tập tin app.file.config có một cái gì đó như thế này:
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="var1" value="value 1" />
<add key="var2" value="value 2" />
<add key="var3" value="value 3" />
</appSettings>
Tôi cần chỉnh sửa var1, var2 và var3 khi chạy và tôi có mã như sau:
Configuration config = ConfigurationManager.OpenExeConfiguration("...path\app.exe);
config.AppSettings.SectionInformation.ConfigSource = "app.file.config";
config.AppSettings.Settings["var1"].Value = "value 11";
config.AppSettings.Settings["var2"].Value = "value 22";
config.AppSettings.Settings["var3"].Value = "value 33";
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
Khi tôi chạy config.Save .... tệp app.file.config có nút appSettings với thuộc tính là "tệp". Thuộc tính này có giá trị để app.file.config
<appSettings file="app.file.config">
<add key="var1" value="value 1" />
<add key="var2" value="value 2" />
<add key="var3" value="value 3" />
</appSettings>
Bây giờ, nếu tôi cố gắng tải các tập tin cấu hình, tôi có một ngoại lệ với thông điệp " 'file' thuộc tính không được nhận. Lưu ý rằng tên thuộc tính là trường hợp nhạy cảm . " trong app.file.config.
Nếu tôi xóa thuộc tính tệp theo cách thủ công, tệp cấu hình được tải đúng cách.
Bất kỳ ý tưởng nào?
Làm cách nào để tránh ghi thuộc tính tệp khi tôi lưu tệp cấu hình.
Cảm ơn
không bao giờ làm điều này, điều gì sẽ xảy ra nếu bạn bỏ qua dòng ConfigSource = "app.file.config"; – kenny
Kenny, tôi không hiểu bạn. Xin vui lòng, bạn có thể giải thích chi tiết hơn? – J19
điều gì sẽ xảy ra khi bạn xóa mã "config.AppSettings.SectionInformation.ConfigSource =" app.file.config ";" – kenny