ConfigurationManager.AppSettings gibt Null in Unit Test Project zurück

Ich habe ein C # Unit Testprojekt mit Anwendungseinstellungen in derapp.config Datei. Ich teste eine Klasse, die in einem anderen Projekt vorhanden ist. Diese Klasse hängt von beiden ab,ConfigurationManager.AppSettings undConfigurationManager.ConnectionStrings.

Das Projekt, in dem sich die getestete Klasse befindet, hat keine app.config-Datei. Ich hätte gedacht, dass, weil die Klasse im Kontext des Unit-Test-Projekts instanziiert wird, sie die app.config-Datei des Unit-Test-Projekts verwenden würde. In der Tat scheint dies für die Verbindungszeichenfolge der Fall zu sein.

Die Klasse ruft die Verbindungszeichenfolge ohne Probleme ab. Wenn die Klasse jedoch versucht, Anwendungseinstellungen abzurufen, gibt der Konfigurationsmanager immer zurücknull. Was geht hier vor sich?

Bearbeiten 1

Ich dachte, es wäre vielleicht eine gute Idee, einige Einstellungen in das Testprojekt zu laden, um zu sehen, was passiert. Ich habe versucht, die Einstellung im Unit-Test direkt vor dem Aufrufen des Codes zu laden, der die Klasse im externen Projekt instanziiert. Gleiches Ergebnis, nichts. Ich schätze, ich kann das andere Projekt vorerst von der Gleichung ausschließen.

Hier ist ein Auszug aus meiner Konfigurationsdatei:

<configSections>
  <sectionGroup name="applicationSettings"
                type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
    <section name="MyNamespace.Properties.Settings"
             type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
             requirePermission="false" />
  </sectionGroup>
</configSections>

...

<applicationSettings>
  <MyNamespace.Properties.Settings>
    <setting name="Bing_Key"
             serializeAs="String">
      <value>...</value>
    </setting>
  </MyNamespace.Properties.Settings>
</applicationSettings>

und hier ist, wie ich versuche, die Einstellung zu laden:

string test = System.Configuration.ConfigurationManager.AppSettings["Bing_Key"];

Antworten auf die Frage(3)

Ihre Antwort auf die Frage