Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengelakkan 'Rujukan objek tidak ditetapkan kepada contoh objek' Apabila Mendapatkan Rentetan Sambungan daripada App.config?

Bagaimana untuk Mengelakkan 'Rujukan objek tidak ditetapkan kepada contoh objek' Apabila Mendapatkan Rentetan Sambungan daripada App.config?

Susan Sarandon
Susan Sarandonasal
2025-01-14 22:56:48484semak imbas

How to Avoid

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn