Odczyt ciągu połączenia z zewnętrznego pliku konfiguracyjnego
Stworzyłem aplikację konsoli i plik app.config oraz plik Connections.config. Plik app.config zawiera źródło właściwości połączenia wskazujące na Connections.config
Gdy próbowałem odczytać ciąg połączenia w aplikacji, otrzymujęConfigurationErrorException
To jest moja główna metoda.
static void Main(string[] args)
{
var settings = ConfigurationManager.ConnectionStrings;
if (settings != null)
{
foreach (ConnectionStringSettings setting in settings)
{
Console.WriteLine(setting.ConnectionString);
}
}
}
Plik App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings configSource="Connections.config"></connectionStrings>
</configuration>
Plik Connections.config
<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
<add name="SQLDBConnecion"
providerName="System.Data.ProviderName"
connectionString="" />
</connectionStrings>
Tutaj zaobserwowałem dwie rzeczy. Po pierwsze: Jeśli określę configSource, nie mogę odczytać ciągu połączenia (wyjątek rzucania).
Po drugie: Jeśli umieściłem ten sam ciąg połączenia w pliku App.config i spróbowałem odczytać, kod działa, ale otrzymuję dwa ciągi połączenia (które powinny zwracać tylko jeden pusty łańcuch) Pierwszym ciągiem połączenia jest łańcuch połączenia sqlexpress jak ten
data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
drugi ciąg połączenia, który zwraca, jest pustym łańcuchem (jest to oczekiwane).
Chcę odczytać ciąg połączenia z pliku zewnętrznego, tak jak w moim scenariuszu. Jak to zrobić? Czego mi tu brakuje?