2009-01-28 3 views
11

Update: Diese Frage, einschließlich der Titel, umformuliert wurde, siehe Geschichte für DetailsGibt es eine Möglichkeit, eine App.config-Datei auf eine andere vollständige Konfigurationsdatei zu verweisen? (.NET)

Ich weiß, dass die folgende App.config eine externe Datei enthält:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings configSource="appSettings.config"/> 
    <system.net> 
    <connectionManagement> 
     <add address="*" maxconnection="50"/> 
    </connectionManagement> 
    </system.net> 
</configuration> 

Aber ich weiß nicht, wie man system.net in die zweite Datei verschiebt. Eigentlich habe ich es nicht ausprobiert, aber ich bin mir fast sicher, dass es nicht funktioniert, und ich möchte wissen, ob es eine Möglichkeit für eine App.config gibt, eine andere App.config-Datei als Verweis aufzunehmen.

+0

kopieren Warum Sie die config in zwei Dateien aufgeteilt würde statt einer dann? –

+0

Da ist einer für die Bibliothek und der andere ist für das Projekt, das die Bibliothek verwendet. –

+0

dll teilen Sie die Anwendungen .config, warum brauchen Sie den Abschnitt system.net in einer anderen Datei? – Adrian

Antwort

0

Ich glaube, Sie nur die configSource Attribute entfernen, und dann sind alle Inhalte innerhalb der <appSettings> und <connectionStrings> Elemente

+0

Aber ich brauche es immer noch 2 separate Dateien, die erste bezieht sich auf die zweite, die tatsächlich die Konfiguration enthält. –

+0

Q: "dll teilen die apps .config" A: Ja, ich weiß. F: "Warum brauchen Sie den Abschnitt system.net in einer anderen Datei?" A: Das war nur ein Beispiel, für meine volle Motivation sehe ich den neuesten Kommentar, den ich zu dieser Frage geschrieben habe. –

6

Sie sollten nicht die system.net Abschnitt innerhalb des appSettings.config setzen. Die Standardpraxis ist ein Konfigurationsknoten in einer Unterkonfigurationsdatei. Ich bin nicht einmal sicher, ob es möglich ist, dieselbe Datei mit verschiedenen Knoten zu teilen.

Sie sollte eine andere Datei vielleicht system.net.config Namen erstellen und den gesamten Körper in dort platzieren, die vollen

<system.net> 
    <connectionManagement> 
     <add address="*" maxconnection="50"/> 
    </connectionManagement> 
    </system.net> 

Dann in der App.config finden Sie die system.net aktualisieren, um zu sein

<system.net> 
    <connectionManagement configSource="system.net.connectionManagement.config"/> 
    </system.net> 
+2

'system.net' kann keine' configSource' deklarieren. – bzlm

+0

aktualisierte Antwort zu configSource 1 Ebene tiefer, Art von sinnlos zu DV eine Antwort, die im Wesentlichen richtig ist, aber von der freien Hand Codierung ... –

+0

Es wäre schön, wenn es einfacher war, in den Dokumenten zu finden, was kann und kann ' t configSourced sein. –

9

ich konnte dies

<configSections> 
    <section name="Sites" 
      type="Wap.Common.Configuration.SiteHandler, Wap.Common" /> 
</configSections> 

<Sites configSource="Sites.Prod.config" /> 

und dann im ext mit configSource zur Arbeit kommen ernal config-Datei, die es das? xml-Tag

<?xml version="1.0" encoding="utf-8" ?> 
<Sites> 
... 
</Sites> 

haben muss und dann müssen Sie die externe Konfigurationsdatei einzurichten immer in das Ausgabeverzeichnis