2011-07-07 19 views

Odpowiedz

16

Jedną, być może łatwiejszą alternatywą jest użycie pliku Ustawienia. Włącza to tworzenie i utrzymywanie wartości App.config w projektowym interfejsie GUI i generuje kod dostępu do wartości.

Aby dodać plik ustawień, kliknij prawym przyciskiem myszy swój projekt w VS i kliknij "Dodaj -> Nowa pozycja", wybierz "Plik ustawień" i nadaj mu wymowną nazwę, np. MainSettings.settings. Następnie możesz dodać element, np. Foo, określ, czy jest to aplikacja czy użytkownik, zdefiniuj jej typ i przypisz wartość. W swoim kodzie możesz odzyskać wartość, pisząc proste: MainSettings.Default.Foo.

Po zakończeniu kompilacji można zmienić wartość, edytując plik konfiguracyjny. Ustawienie pojawi się w następujący sposób: -

<applicationSettings> 
    <YourNamespace.MainSettings> 
     <setting name="Foo" serializeAs="String"> 
      <value>Bar</value> 
     </setting> 
    </YourNamespace.MainSettings> 
</applicationSettings> 
+0

Niesamowita sugestia, @Adam. Wpadłem na to ponad 8000 powtórzeń. Dobra robota! – retrodrone

+0

@retrodone - dzięki! Właśnie zalogowałem się po raz pierwszy po powrocie z wakacji ... –

+0

Po ręcznym zmodyfikowaniu konfiguracji, nie jest ona automatycznie propagowana do ustawień w VS. Musisz przejść do właściwości i pozwolić im je rozwiązać. –

8

Trudno powiedzieć z czego podajemy tutaj:

  1. Sprawdź pisownię wartości w MyKey
  2. Zapewnienie szukasz w odpowiednim app.config - jeśli to call znajduje się w bibliotece odniesienia i oczekuje wartości pochodzącej z app.config projektu wywołującego, ale biblioteka ma app.config z jakiegoś powodu może być przyczyną problemu.
+0

Faktycznie mam tylko jeden plik app.config, a ja po prostu wywołuję ConfigurationManager.AppSettings [myKey], a klucz istnieje! nie wiesz, kiedy to się dzieje. –

+0

ConfigurationManager.AppSettings [myKey] jest [bez rozróżniania wielkości liter] (https://stackoverflow.com/questions/3295293/how-to-check-if-an-appsettings-key-exists#comment49367267_6071115) ; właśnie zredagowałem tę odpowiedź. – Chris

0

Mam dwie projektu w moim roztwór pierwszy i dodaj plik app.config w projekcie biblioteki klasa którym wszystkie przypadki to zadzwonić z aplikacji konsoli I dodaje te wpisy w pliku konfiguracyjnym w klasie projekt lib

<appSettings> 
<add key="userName" value="user2" /> 
<add key="emilsLimit" value="50" /> 
</appSettings> 

było rzucanie wyjątku null kiedy się je w klasie w projekcie biblioteki klasy, ale gdy usunę app.config z klasy projektu biblioteki i dodany w projekcie konsoli to works.Cheers

Note : Odwołanie do projektu klasy lib dodaje się w konsoli

1

I był ten sam problem, ale kiedy dodaje pusty (+ „”) na końcu odbiera się ciąg w AppSettings

np

string s = ConfigurationManager.AppSettings["myKey"] + ""; 
Powiązane problemy