Nie mogę uzyskać dostępu do wartości w pliku konfiguracyjnym.
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var clientsFilePath = config.AppSettings.Settings["ClientsFilePath"].Value;
// the second line gets a NullReferenceException
plik .config :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<!-- ... -->
<add key="ClientsFilePath" value="filepath"/>
<!-- ... -->
</appSettings>
</configuration>
Czy masz jakieś sugestie, co mam zrobić?
System.Configuration
.System.Configuration
nieConfigurationManager
Odpowiedź, którą udzielił dtsg, działa:
ALE musisz dodać odwołanie do zestawu do
Przejdź do Eksploratora rozwiązań i kliknij prawym przyciskiem myszy Referencje i wybierz Dodaj odwołanie . Wybierz kartę Zespoły i wyszukaj Konfiguracja .
Oto przykład mojego pliku App.config :
Które możesz zdobyć w następujący sposób:
źródło
System.configuration
(małe litery).Spróbuj:
źródło
Odczytaj z konfiguracji:
Musisz dodać odwołanie do Config
Zapisz w konfiguracji:
źródło
null
sznurek z powyższymi zaleceniami, aleProperties.Settings.Default.<keyName>
działał jak marzenie!Ja używam:
Gdzie value1 = ... i value3 = ... daje null, a value2 = ... działa
Wtedy zdecydowałem się zamienić wewnętrzny plik app.config na:
Korzystanie z VS2012 .net 4
źródło
W
app/web.config
pliku ustaw następującą konfigurację:możesz uzyskać do tego dostęp w swoim kodzie, umieszczając w tym wierszu:
* Zauważ, że to działa dobrze w przypadku
.net4.5.x
i.net4.6.x
; ale nie pracuj dla.net core
. Z poważaniem: Rafaelźródło
Wracając do tego po długim czasie ...
Biorąc pod uwagę upadek ConfigurationManager, dla każdego, kto wciąż szuka odpowiedzi na tę próbę (na przykład):
Oczywiście wymaga konfiguracji System.Configuration.
(Zmodyfikowałem kod do czegoś, co faktycznie działa i jest prostsze do odczytania)
źródło
Widzisz, zrobiłem to, co uważałem za oczywiste:
Podczas kompilacji zawsze zwraca null.
To jednak (z góry) działa:
źródło
Niektóre odpowiedzi wydają się być nieco odbiegające od IMO Oto moja opinia z około 2016 roku
Upewnij się, że
System.Configuration
istnieje odniesienie.Pytanie dotyczy wartości klucza appSettings
Która z pewnością POWINNA być
Oto zwrot akcji, w którym możesz grupować wartości (nie w tym pytaniu)
emails
będzie wartością klucza środowiska + „_Emails”źródło
W przypadku aplikacji internetowych zwykle napiszę tę metodę i po prostu wywołam ją za pomocą klucza.
źródło
Możesz po prostu wpisać:
ponieważ
key
jest obiektem iAppSettings
przyjmuje ciągźródło
źródło
Lub możesz użyć
źródło
Mój prosty test również się nie powiódł, postępując zgodnie z radą innych odpowiedzi tutaj - dopóki nie zdałem sobie sprawy, że plik konfiguracyjny, który dodałem do mojej aplikacji komputerowej, otrzymał nazwę „App1.config”. Zmieniłem nazwę na „App.config” i wszystko od razu działało tak, jak powinno.
źródło
KOD ZOSTANIE GENEROWANY AUTOMATYCZNIE
Aby uzyskać wartość
Właściwości.Settings.Default.Name
LUB
Properties.Settings.Default ["nazwa"]
źródło