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
Lepaskan: 2025-01-14 22:56:48
asal
343 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan