Ich stehe vor einem Problem.
Ich habe eine DLL, die mit einem Webservice interagiert und ihre Endpunktkonfiguration in ihrer app.config-Datei speichert.
Ich möchte diese DLL von meiner Host-Anwendung verwenden. Die Host-Anwendung hat ihre eigene Konfigurationsdatei. Ich muss den Inhalt der DLL-Konfiguration jedes Mal in die Konfiguration des Hosts einbinden, wenn ich den Dienstendpunkt ändere.
Gibt es eine Möglichkeit, dass ich beide Konfigurationsdateien verwenden kann. Also verwendet die DLL ihre eigene Konfiguration, während die Host-Anwendung ihre eigene Konfiguration verwendet.
Konfigurationsdateien können externe Dateien enthalten.
Wenn Sie die Konfiguration des Endpunkts in eine externe Datei schreiben und sie dann in Ihren Host einbinden, müssen Sie die Konfiguration des Hosts nicht jedes Mal ändern
zB: in Ihrer app.config-Datei:
%Vor%Dann könnte myEndpoint.config so aussehen:
%Vor%und Sie können auf die Werte aus Ihrem Code zugreifen, ähnlich wie beim Lesen normaler App-Einstellungen:
%Vor%Der richtige Weg besteht darin, die Konfigurationsdatei der DLL in die EXEs zu integrieren; das wird aus der Box funktionieren. Aber siehe .NET DLL Settings und Config, wenn es eine Web-Referenz gibt - was ist los? für eine Möglichkeit, eine Konfigurationsdatei explizit zu öffnen und zu lesen. Das Problem ist, dass Sie zuerst die Konfigurationsdatei finden müssen, und das ist nicht unbedingt einfach. Wenn die DLL nur herum sitzt, könnten Sie das gleiche Verzeichnis überprüfen. Aber wenn es in der GAC ist, wo schaust du hin? Ich schlage vor, auf dem richtigen Weg zu bleiben.
Dies kann hilfreich sein, wenn Sie svcutil zum Generieren Ihres Proxys verwenden: Aktivieren Sie die Schalter /config:
und /mergeConfig
, mit denen Sie angeben können, welche Konfigurationsdatei die generierten Informationen erhält, und Sie können sie zusammenführen, anstatt alles zu überschreiben ist schon da.
Tags und Links configuration c# app-config