Tôi muốn đọc/ghi (và tiết kiệm) tập tin cấu hình ứng dụng trong chương trìnhConfigurationProperty là không thể tiếp cận do mức độ bảo vệ của nó
Các app.config là như thế này:
<configuration>
<configSections>
<section name="AdWordsApi" type="System.Configuration.DictionarySectionHandler" requirePermission="false"/>
</configSections>
<AdWordsApi>
<add key="LogPath" value=".\Logs\"/>
...
</AdWordsApi>
</configuration>
Khi tôi sử dụng ConfigurationManager.GetSection để đọc app.config, nó hoạt động:
var adwords_section = (System.Collections.Hashtable) System.Configuration.ConfigurationManager.GetSection("AdWordsApi");
Console.WriteLine((string)adwords_section["LogPath"]);
B ut khi tôi sử dụng ConfigurationManager.OpenExeConfiguration:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
ConfigurationSection section = config.GetSection("AdWordsApi");
Console.WriteLine(section["LogPath"]);
tôi luôn luôn nhận được lỗi này:
'System.Configuration.ConfigurationElement.this[System.Configuration.ConfigurationProperty]' is inaccessible due to its protection level
Nhưng như tôi biết, GetSection không thể lưu cấu hình khi chạy chương trình, Như tôi đã nói ngay từ đầu : Tôi muốn lưu cấu hình trong thời gian chạy chương trình, Vì vậy, tôi phải sử dụng OpenExeConfiguration.
Tôi đã googled cho thời gian dài, những gì tôi thấy là sử dụng AppSettings, nhưng những gì tôi sử dụng phần tùy chỉnh là ..
Bất cứ ai có thể giải thích tại sao điều này "ConfigurationProperty là không thể tiếp cận" lỗi xảy ra? Cảm ơn
Edit:
tôi đã thiết bản sao cục bộ của Hệ thống và System.Configuration để đúng
Tôi đã xác định AdwordsSettings là lớp con của ConfigurationSection như bạn đã nói: http: //pastecode.com/jF và chương trình dừng ở đây: string path = AdwordsSettings.Settings.LogPath với một NullReferenceException (Object không được thiết lập cho một thể hiện của một đối tượng) –
Và khi chương trình dừng lại ở đó, tôi tìm thấy AdwordsSettings.Cài đặt là ** null ** trong trình gỡ lỗi –
@gbstack, bạn nên đọc bài viết đó chi tiết hơn hoặc xem qua các bài viết tương tự để hiểu rõ hơn về hệ thống cấu hình, http://www.codeproject.com/KB/dotnet /mysteriesofconfiguration.aspx. Lỗi ban đầu của bạn được mong đợi khi bạn hiểu sai cách đọc phần. –