Ich schreibe eine Klassenbibliothek als eine Abstraktion, die ich für die Anmeldung bei jeder Anwendung, jedem Dienst usw. verwende, die ich schreibe. Ich mache es anständig robust, indem ich es sehr konfigurierbar mache, um meine Anforderungen für die meisten Anwendungs / Service-Protokollierungsszenarien zu erfüllen, auf die ich stoße.
Die Config wurde entwickelt, um Dinge wie:
Ich habe einige andere stackoverflow-Fragen bezüglich der Konfiguration von DLL-Assemblys gelesen, die zu einem Konflikt zwischen app.config für die hosting assembly / app führen. Ich glaube, dass meine Assembly gerade eine Konfigurationsdatei bereitstellen muss.
Ist das ein gutes Szenario für diesen Anlass? Ist es vielleicht eine bessere Idee, meine eigene Konfiguration in mein Projekt zu brennen, so dass mein Logger XML-Dateien liest, um Konfigurationswerte abzurufen?
Was Sie tun könnten, ist
Erstellen Sie einen benutzerdefinierten Konfigurationsabschnitt (z. B. mit dem Tool COnfiguration Section Designer )
Fügen Sie die Konfiguration Ihrer Assembly in eine separate MyAssembly.config
-Datei
Verweisen Sie auf die Konfigurationsdatei für die Assembly in der Konfiguration Ihrer Host-App:
%Vor%Auf diese Weise können Sie Ihre Konfiguration in eine separate Konfigurationsdatei "externalisieren", die Sie nur einmal (im Projekt Ihrer Assembly) haben, und jedes Projekt, das sie benötigt, benötigt diese Einstellungen nur in ihrer eigenen Konfigurationsdatei.
Klingt wie ein benutzerdefinierter Konfigurationsabschnitt würde in Ihrem Fall gut funktionieren. Viele Bibliotheken, wie die Enterprise Library, tun genau dies. Lesen Sie den MSDN-Artikel zum Erstellen eines.
Der .NET-Konfigurationsmechanismus dient nicht zur Verarbeitung von Konfigurationsdateien für DLLs. Sie sollten Ihre Anwendung mit den entsprechenden Einstellungen konfigurieren und sie an die Klasse weitergeben, die Sie aus der DLL instanziieren.
Es ist möglich, Einstellungen zu einem DLL-Projekt hinzuzufügen, wie Sie es normalerweise für Anwendungen tun würden. Alles, was Sie dann tun müssen, ist, die relevanten Abschnitte und Einträge in die app.config der Anwendung manuell zu kopieren, und es wird funktionieren.
Es ist jedoch immer noch wahr, dass es keinen Sinn macht, die Konfigurationsdatei der DLL zu kopieren. Es wird nicht gelesen.
Ein anderer Mechanismus ist eine separate Konfigurationsdatei (* .dll.config) für Ihre Assembly. Die Technik wird hier gezeigt: Ссылка
Das obige Beispiel imitiert die Standardmethode app.config für Baugruppen.
Meiner Meinung nach sollte der Code zum Lesen der DLL-Konfiguration nur in der entsprechenden DLL und in einer separaten Klasse existieren - mit der alleinigen Verantwortung, Konfigurationseinträge aus der * .dll.config zu lesen. Dies ist eine nette Möglichkeit, die Konfigurationsdatei für eine Assembly ähnlich wie die Konfigurationsdatei (app.config) zu erstellen, die eine ausführbare Datei haben kann.
Tags und Links configuration c# dll