Ich habe eine Konsolenanwendung und eine Datei app.config und Connections.config erstellt. Die app.config-Datei hat eine Eigenschaft Connectionquelle mit dem Zeige Connections.configVerbindungszeichenfolge von externer Konfigurationsdatei lesen
Als ich versuchte, die Verbindungszeichenfolge in der Anwendung zu lesen, erhalte ich ein ConfigurationErrorException
Das ist meine Hauptmethode ist.
static void Main(string[] args)
{
var settings = ConfigurationManager.ConnectionStrings;
if (settings != null)
{
foreach (ConnectionStringSettings setting in settings)
{
Console.WriteLine(setting.ConnectionString);
}
}
}
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings configSource="Connections.config"></connectionStrings>
</configuration>
Connections.config
<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
<add name="SQLDBConnecion"
providerName="System.Data.ProviderName"
connectionString="" />
</connectionStrings>
Hier beobachtet Datei Datei ich zwei Dinge. Erstens: Wenn ich configSource kann ich die Verbindungszeichenfolge (werfen Exception) nicht lesen.
Zweitens: Wenn ich dieselbe Verbindungszeichenfolge in App.config-Datei und versuchte zu lesen, dann funktioniert der Code aber bekommen zwei Verbindung String (die nur eine Rück sein sollten, die leere Zeichenfolge ist) die erste Verbindungszeichenfolge ist sqlexpress Verbindungszeichenfolge wie diese
data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
zweite Verbindungszeichenfolge ist es leere Zeichenkette zurückkehrt (Dies wird erwartet).
Ich möchte Verbindungszeichenfolge aus externen Datei wie in meinem Szenario lesen. Wie geht das? Was fehlt mir hier?
Erstellungsaktion ist nicht obligatorisch, Wenn Kopie zum Ausgabeverzeichnis auf * Immer kopieren * oder * Kopie, wenn neuer * gesetzt ist, wird die Build-Aktion standardmäßig auf Inhalt gesetzt. Sonst gut beantwortet - +1 –
Guter Punkt, das wusste ich nicht. –