Rumah >pembangunan bahagian belakang >C++ >Mengapa Pembolehubah Statik Saya dalam ASP.NET Ditetapkan Semula, Walaupun Dengan Sesi Aktif?
Memahami Kitaran Hayat Pembolehubah Statik dalam ASP.NET
Dalam ASP.NET, pembolehubah statik diisytiharkan dalam kelas halaman (di luar Global.asax
) dan dimulakan dalam Page_Load
kadangkala ditetapkan semula secara tidak dijangka, walaupun dengan sesi aktif. Tingkah laku ini berpunca daripada sifat pembolehubah statik dan kompilasi dinamik ASP.NET.
Mengapa Pembolehubah Statik Tetapkan Semula
Pembolehubah statik ASP.NET wujud untuk jangka hayat domain aplikasi. Ia ditetapkan semula apabila domain apl dimulakan semula atau kelas yang mengandungi diganti. Memandangkan halaman ASPX disusun secara dinamik, ASP.NET mungkin menyusun semula kelas halaman, dengan berkesan mencipta tika baharu dan menetapkan semula pembolehubah statik.
Mencegah Kehilangan Pembolehubah Statik Semasa Penggantian Kelas
Semasa domain apl dimulakan semula tidak dapat tidak menetapkan semula pembolehubah statik, anda boleh mengurangkan kehilangan daripada penggantian kelas. Penyelesaiannya adalah untuk menempatkan semula pembolehubah statik dari halaman ASPX dan direktori App_Code
. Kelas statik yang berasingan dalam modul aplikasi yang berbeza disyorkan.
Pertimbangan Penting
Perlu diingat bahawa pembolehubah statik adalah setiap kumpulan aplikasi. Arahan berbilang kumpulan akan mempunyai set pembolehubah statik yang berasingan. Selain itu, pembolehubah statik tidak semestinya selamat untuk benang, memerlukan mekanisme penyegerakan yang jelas untuk akses berbilang benang.
Alternatif kepada Pembolehubah Statik dalam ASP.NET
Untuk kegigihan data yang lebih dipercayai, pertimbangkan alternatif kepada pembolehubah statik jika tetapan semulanya bermasalah. Pangkalan data dengan kelas tersuai menyediakan storan berterusan, manakala Session State
menawarkan kegigihan data setiap pengguna. Elakkan Application State
kerana ia juga kekal memori dan hilang pada domain apl dimulakan semula.
Atas ialah kandungan terperinci Mengapa Pembolehubah Statik Saya dalam ASP.NET Ditetapkan Semula, Walaupun Dengan Sesi Aktif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!