Wie kann ich Konfigurationseinstellungen für mehrere Projekte in Visual Studio freigeben?

8

Ok, ich weiß, dass das ein Designproblem sein könnte, also hätte ich gerne auch Anmerkungen dazu.

Ich habe eine Visual Studio-Webanwendungslösung. Ich habe drei Projekte als UserInterface, BusinessLogic und DataAccess.

Ich musste einige benutzerdefinierte Einstellungen speichern und ich habe configSections in der Konfigurationsdatei erstellt.

Ich greife auf diese configSections über Klassen zu, die von der .NET ConfigurationSection Basisklasse erben.

Kurz gesagt, für jedes Projekt hatte ich eine separate configSection und für die entsprechende configSection hatte ich eine Klasse in diesem Projekt, die von ConfigurationSection erbte, um auf die Einstellungen der Konfigurationsbereiche zuzugreifen.

Das funktioniert alles süß. Das Problem tritt jedoch auf, wenn eine Einstellung vorhanden ist, die ich für mehrere Projekte verwenden muss. Wenn ich also eine Einstellung verwenden muss, die im UserInterface-Projekt configSection definiert ist, sagen wir im BusinessLogic-Projekt, muss ich eine Kopie dieser Einstellung in der configSection von BusinessLogic erstellen. Dies führt dazu, dass die gleiche Einstellung über mehrere configSections kopiert wird.

Ist das nicht ein bisschen zu redundant?

    
neebz 13.05.2010, 12:46
quelle

4 Antworten

3

Setzen Sie die freigegebenen Konfigurationseinstellungen in eine separate Datei und verwenden Sie diese Technik: Ссылка

    
simon831 13.05.2010, 12:49
quelle
1

Habe das nie gemacht, aber theoretisch könnte es funktionieren ...

Wenn Sie Ihren benutzerdefinierten Konfigurationsabschnitt definieren, legen Sie seine Konfigurationsquelle fest in eine externe Datei (whatever.config). Diese externe Datei sollte der LÖSUNG und nicht dem Projekt hinzugefügt werden. Es erscheint unter "Lösungselemente". In jedem Projekt fügen Sie eine vorhandene Datei hinzu, suchen Sie nach whatever.config, klicken Sie auf das Dropdown-Menü auf der Schaltfläche Hinzufügen und wählen Sie "Als Verknüpfung hinzufügen".

Whatever.config ist eine einzelne Datei, die Sie unter Lösungselemente bearbeiten können. Sie wird zur Kompilierungszeit in jede Anwendung kopiert.

    
Will 13.05.2010 12:57
quelle
0

Verwenden Sie Ihr Beispiel:

Erstellen Sie die Einstellung im Business Logic-Projekt und geben Sie dann ein Getter für das Benutzeroberflächenprojekt frei.

Dann kann die Benutzeroberfläche die BL für den Wert abfragen. Ihre Konfigurationseinstellung ist nur an einer Stelle - auf der niedrigsten Stufe.

Wenn Sie jedoch ein Projekt auf niedrigerer Ebene durch ein neues ersetzen, müssen Sie sicherstellen, dass die Einstellung auch repliziert wird. Dies ist wahrscheinlich nur dann ein Problem, wenn sich die Einstellung in der Datenzugriffsebene befindet, da diese am wahrscheinlichsten geändert wird (z. B. ein anderer Datenbankanbieter).

    
ChrisF 13.05.2010 12:50
quelle
0

Es gibt einen viel besseren Weg, dies mit "Shared Projects" zu tun, siehe meine Antwort auf ein sehr ähnliche Frage hier .

    
Andy Braham 10.02.2017 15:53
quelle

Tags und Links