从 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中文网其他相关文章!