| 

.NET C# Java Javascript Exception

5
Hallo,
Habe zur Zeit folgendes Problem, und evtl. habt ihr eine Idee wie ich das am besten lösen kann.
Ich habe eine Excel VSTO, mit einer Ribbon Toolbar und ein paar GUI Applikationen, die ich von dort aufrufe. Dazu habe ich in diesem VSTO Projekt eine app.config, in der ein paar Custom Config Sections drin sind, wo z.B. gewisse XML Files liegen, wie die Log4Config ist usw.

Nun habe ich ein „Helper“ Projekt in form einer „Assembly“ die macht nichts anderes macht, als diese XML File zu serialisieren oder deserialisieren wo ich dann über Linq Datenauslese oder eben abspeicher. Den Pfad wo diese Files liegen, bekomme ich vom Config File der VSTO Applikation und rufe diese über

(NameValueCollection)ConfigurationManager.GetSection("customfolder");

auf. Soweit so gut.

Nun habe ich noch eine GUI Applikation, in dieser GUI Applikation habe ich eine Assembly welche auch auf diese Helper Assembly referenziert.

Nun ist es so das ich deswegen 2 App.configs habe, eine für das VSTO und eine für die GUI Applikation, in der genau die gleichen Settings drin stehen.
Jedoch hätte ich gerne, ein Config File für beide Applikationen und am liebsten möchte ich noch auf die Settingsklasse zugreifen. In Helper Assembly lässt sich leider vom VS.Studio aus, keine Settingsklasse im Properties Ordner erstellen.

Habt ihr evtl. eine gute Idee, was die beste Strategie ist, in einem solchem Fall?

Besten Dank schon im voraus für eure Hilfe.

Dan
News:
07.02.2014
CodingMan 168 5
2 Antworten
2
Eine zentrale Stelle für die Ablage wäre die Registry.
Eine weitere Enviroment.SpecialFolder.CommonApplicationData

Mein Vorschlag: Anstelle die settings in einer jeder der .config Dateien abzulegen Serialisiere die Settings in einen XML-String und schreibe diesen in die Registry oder eine Datei unter dem genannten Folder. Beim Auslesen deserialisert du wieder und hast die Settings Klasse. Oder schreibe deine eigene Klasse mit den nötigen Einstellungen und serialisiere diese als XML.

Allerdings kommst du so nicht umhin irgend einen Teil (Registry Key oder Filename) hardcodiert bzw. wiederum in einer .config Datei für beide Anwendungen zu führen.

Dazu muss natürlich auch der Code für das Auslesen in beiden Anwendungen verfügbar sein. Ich würde natürlich die Datei-Variante empfehlen, denn in der Registry lässt sich die Konfiguration nicht von außen warten.

Gruß
Maria
07.02.2014
Maria Simlinger 1,1k 1 9
Der Gedanke mit der XML Lösung ist mir auch schon in den Sinn gekommen, oder ein „exe“ Projekt, das sich nur um die Setting kümmert, aber ich denke das beste wird die XML Lösung sein.
Danke für die Antwort.
CodingMan 11.02.2014
1
Versuch's mal mit der ConfigurationManager.OpenMappedExeConfiguration. Damit solltest Du in der Lage sein, eine einzige app.config zu verwenden.
11.02.2014
ffordermaier 8,4k 3 9

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH