Korzystając z
Viusal Studio i .NET mamy łatwy sposób konfigurowania aplikacji
przy pomocy plików app.config oraz Settings.Settings. Pisałem już
o tym na tym blogu w artykule: „Przechowywanie
i edycja ustawień aplikacji w .NET (prosto, szybko, sprawnie i
elegancko)(przykłady oparte o .NET, w języku C#)”. Niestety
można natknąć się na „schody”, gdy ustawienia chcemy
przenosić pomiędzy różnymi assembly. Zobaczmy na prostym
przykładzie jak to rozwiązać...
W przykładzie
analizujemy następujące solution:
Jak widać mamy dwa
assembly. Pierwsze to biblioteka: ClassLibrary1, która definiuje
klasę Class1 i ma swoje ustawienie „MySetting”. Drugie to
aplikacja: Settingtest, która wykorzystuje ClassLibrary1.
Class1.cs:
namespace ClassLibrary1 { public class Class1 { public static string GetSetting() { return Properties.Settings.Default.MySetting; } } }
Program.cs:
using System; using ClassLibrary1; namespace Settingtest { class Program { static void Main( string[] args ) { Console.WriteLine( "Setting from library:" + Class1.GetSetting() ); Console.ReadLine(); } } }
Chcielibyśmy mieć
możliwość konfigurowania ustawienia MySetting z poziomu aplikacji.
Niestety w tej kwestii Visual Studio nie wiele nas wspomoże. Musimy
sami ręcznie zmodyfikować plik app.config aplikacji. Zostało to
przedstawione na poniższym rysunku:
Jak widać trzeba
ręcznie przenieść definicję sekcji
ClassLibrary1.Properties.Settings, oraz skopiować ustawienia (w tym
MySetting) do sekcji applicationSettings.
Dzięki temu możemy
podziwiać następujące działanie aplikacji:
Przyjrzyjmy się
jeszcze na chwilę ustawieniom aplikacji i przeanalizujmy skąd biorą
się poszczególne elementy XML:
Jak widać
„sectionGroup” definiuje wykorzystywaną grupę:
„applicactionSettings”. Ponadto tworzone są dwie sekcje
„Settingtest.Properties.Settings” oraz
„ClassLibrary.Properties.Settings”, które są później nazwami
elementów XML, wewnątrz których zdefiniowane są poszczególne
ustawienia (setting).
Brak komentarzy:
Prześlij komentarz