Mengakses Rentetan Sambungan daripada App.config: Mengelakkan NullReferenceExceptions
Mendapatkan semula rentetan sambungan daripada fail App.config anda memerlukan pengendalian yang teliti untuk mengelakkan ralat NullReferenceException
. Pertimbangkan contoh kod berikut:
<code class="language-csharp">var connection = ConnectionFactory.GetConnection( ConfigurationManager.ConnectionStrings["Test"] .ConnectionString, DataBaseProvider);</code>
Coretan kod ini, apabila digunakan dengan fail App.config standard seperti ini:
<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>
boleh melontar NullReferenceException
jika rentetan sambungan "Ujian" tidak ditemui. Masalahnya terletak pada mengakses terus .ConnectionString
tanpa menyemak nol.
Penyelesaian yang mantap melibatkan pengesahan kewujudan rentetan sambungan sebelum mengakses sifatnya:
<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>
Sebagai alternatif, pendekatan yang lebih ringkas menggunakan operator tanpa syarat (?.) boleh digunakan:
<code class="language-csharp">var connection = ConnectionFactory.GetConnection( ConfigurationManager.ConnectionStrings["Test"]?.ConnectionString, DataBaseProvider);</code>
Ini akan mengendalikan kes null dengan anggun dengan menetapkan connection
kepada null jika "Ujian" tiada. Ingat untuk menambah pengendalian ralat yang sesuai dalam senario ini.
Akhir sekali, ingat untuk memasukkan rujukan kepada System.Configuration.dll
dalam projek anda. Perhimpunan ini menyediakan kelas yang diperlukan untuk mengakses tetapan konfigurasi. Tanpa rujukan ini, kompilasi akan gagal.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan 'Rujukan objek tidak ditetapkan kepada contoh objek' Apabila Mendapatkan Rentetan Sambungan daripada App.config?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!