chcę Odczyt/zapis (i zapisać) plik konfiguracyjny aplikacji w programieConfigurationProperty jest niedostępne ze względu na jego poziom ochrony
app.config jest tak:
<configuration>
<configSections>
<section name="AdWordsApi" type="System.Configuration.DictionarySectionHandler" requirePermission="false"/>
</configSections>
<AdWordsApi>
<add key="LogPath" value=".\Logs\"/>
...
</AdWordsApi>
</configuration>
Gdy używam ConfigurationManager.GetSection do zapoznania się z app.config, to działa:
var adwords_section = (System.Collections.Hashtable) System.Configuration.ConfigurationManager.GetSection("AdWordsApi");
Console.WriteLine((string)adwords_section["LogPath"]);
B ut kiedy używam ConfigurationManager.OpenExeConfiguration:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
ConfigurationSection section = config.GetSection("AdWordsApi");
Console.WriteLine(section["LogPath"]);
zawsze ten błąd:
'System.Configuration.ConfigurationElement.this[System.Configuration.ConfigurationProperty]' is inaccessible due to its protection level
Ale wiem, GetSection nie można zapisać konfigurację przy starcie programu, jak mówiłem na początku : Chcę zapisać konfigurację w czasie uruchamiania programu, więc muszę użyć OpenExeConfiguration.
Mam google przez długi czas, co znalazłem jest użycie AppSettings, ale co używam to odcinek zwyczaj ..
Każdy może wyjaśnić, dlaczego ta „ConfigurationProperty jest niedostępna” błąd? Dzięki
Edit:
Mam ustawiony kopia lokalna z Systemu i System.Configuration do prawda
Zdefiniowałem AdwordsSettings jako podklasę ConfigurationSection, tak jak powiedziałeś: http: //pastecode.com/jF i program zatrzymuje się tutaj: string path = AdwordsSettings.Settings.LogPath z NullReferenceException (Obiekt nie ustawiony na instancję obiektu) –
A kiedy program się zatrzymuje, znalazłem AdwordsSettings.Ustawienia mają wartość ** null ** w debugerze –
@ gbstack, powinieneś przeczytać ten artykuł bardziej szczegółowo lub przejść przez bardziej podobne artykuły, aby lepiej zrozumieć system konfiguracji, http://www.codeproject.com/KB/dotnet /mysteriesofconfiguration.aspx. Twój pierwotny błąd jest oczekiwany, ponieważ źle rozumiesz sposób czytania sekcji. –