從 App.config 存取連接字串:避免 NullReferenceExceptions
從 App.config 檔案中檢索連接字串需要仔細處理,以防止 NullReferenceException
錯誤。 考慮以下程式碼範例:
<code class="language-csharp">var connection = ConnectionFactory.GetConnection( ConfigurationManager.ConnectionStrings["Test"] .ConnectionString, DataBaseProvider);</code>
此程式碼片段與標準 App.config 檔案一起使用時,如下所示:
<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>
可以拋出NullReferenceException
。 問題在於直接存取.ConnectionString
而不檢查null。
一個強大的解決方案包括在存取其屬性之前驗證連接字串是否存在:
<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>
或者,可以採用使用空白條件運算子 (?.) 的更簡潔的方法:
<code class="language-csharp">var connection = ConnectionFactory.GetConnection( ConfigurationManager.ConnectionStrings["Test"]?.ConnectionString, DataBaseProvider);</code>
如果缺少“Test”,這將透過將 connection
設為 null 來優雅地處理 null 情況。 請記住在這種情況下添加適當的錯誤處理。
最後,請記住在您的專案中包含對 System.Configuration.dll
的引用。該組件提供了存取配置設定所需的類別。 如果沒有這個引用,編譯將會失敗。
以上是從 App.config 檢索連接字串時如何避免「物件引用未設定到物件的實例」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!