2014-04-01 10 views
11

Ich habe zwei Projekte innerhalb meiner Lösung, für dieses Beispiel werde ich sie Projekt A und B nennen.Zugriff auf weitere Projekte app.config Eigenschaften?

Projekt B Referenzen A. Kann Projekt B auf die app.config Eigenschaften von Projekt A zugreifen?

Ich wünsche

string tfsUri = ConfigurationManager.AppSettings["TfsUri"]; 

Antwort

13

eine App Schlüsselfolge innerhalb der app.config von A. zuzugreifen, die in der Regel keine gute Idee, wie man hart Abhängigkeiten zwischen den Projekten einzuführen. Wenn Sie also den Konfigurationswert kopieren und einfügen können, werden Ihre Projekte in sich geschlossen (dies führt jedoch zu einer Verdopplung des Konfigurationswerts).

Sie können dies auch automatisieren, sodass beim Erstellen eines Projekts die Konfigurationsabhängigkeit automatisch aufgelöst wird.

Nachdem dies gesagt wurde, gibt es andere Optionen, und in jedem Fall möchten Sie möglicherweise etwas anderes verwenden. Weitere Optionen sind:

+0

Dank für diese ausführliche Antwort! – Adrian

-5

Sie können nicht auf die Eigenschaften in Projekt A von Projekt B zugreifen, ohne denselben Wert in Projekt A-Konfigurationsdatei zu haben.

2
 var path = @"C:\Users\Stephen\source\repos\SensurityConfigurationTool\Configuration.UI\App.config"; 
     string directory = Path.GetDirectoryName(path); 
     var pathRoot = Path.GetPathRoot(directory); 
     string file = Path.GetFileName(path); 


     ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap 
     { 
      ExeConfigFilename = Path.Combine(Path.GetFullPath(directory + "\\" + file)) 
     }; 

     System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 

Sie im Grunde den relativen Pfad bekommen, dann wandeln diese in einen absoluten Pfad