Heim >Backend-Entwicklung >C++ >Wie vermeide ich „Objektverweis nicht auf Instanz eines Objekts festgelegt' beim Abrufen von Verbindungszeichenfolgen aus App.config?
Zugriff auf Verbindungszeichenfolgen aus App.config: Vermeidung von NullReferenceExceptions
Das Abrufen von Verbindungszeichenfolgen aus Ihrer App.config-Datei erfordert eine sorgfältige Handhabung, um NullReferenceException
Fehler zu vermeiden. Betrachten Sie das folgende Codebeispiel:
<code class="language-csharp">var connection = ConnectionFactory.GetConnection( ConfigurationManager.ConnectionStrings["Test"] .ConnectionString, DataBaseProvider);</code>
Dieses Code-Snippet, wenn es mit einer Standard-App.config-Datei wie dieser verwendet wird:
<code class="language-xml"><?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" name="Test" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration></code>
kann ein NullReferenceException
auslösen, wenn die Verbindungszeichenfolge „Test“ nicht gefunden wird. Das Problem besteht darin, direkt auf .ConnectionString
zuzugreifen, ohne nach null zu suchen.
Eine robuste Lösung besteht darin, die Existenz der Verbindungszeichenfolge zu überprüfen, bevor auf ihre Eigenschaften zugegriffen wird:
<code class="language-csharp">var connectionString = ConfigurationManager.ConnectionStrings["Test"]; if (connectionString != null) { var connection = ConnectionFactory.GetConnection(connectionString.ConnectionString, DataBaseProvider); // ... use the connection ... } else { // Handle the case where the connection string is not found. // Log an error, throw an exception, or use a default connection. }</code>
Alternativ kann ein prägnanterer Ansatz mit dem Null-Bedingungsoperator (?.) verwendet werden:
<code class="language-csharp">var connection = ConnectionFactory.GetConnection( ConfigurationManager.ConnectionStrings["Test"]?.ConnectionString, DataBaseProvider);</code>
Dadurch wird der Nullfall ordnungsgemäß behandelt, indem connection
auf Null gesetzt wird, wenn „Test“ fehlt. Denken Sie daran, in diesem Szenario eine entsprechende Fehlerbehandlung hinzuzufügen.
Denken Sie abschließend daran, einen Verweis auf System.Configuration.dll
in Ihr Projekt aufzunehmen. Diese Assembly stellt die notwendigen Klassen für den Zugriff auf Konfigurationseinstellungen bereit. Ohne diesen Verweis schlägt die Kompilierung fehl.
Das obige ist der detaillierte Inhalt vonWie vermeide ich „Objektverweis nicht auf Instanz eines Objekts festgelegt' beim Abrufen von Verbindungszeichenfolgen aus App.config?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!