मैं सी # में एक डब्ल्यूसीएफ सेवा लिख रहा हूं। प्रारंभ में मेरे कार्यान्वयन में एक बार प्रारंभिक प्रारंभ करने के लिए एक स्थिर कन्स्ट्रक्टर था, लेकिन कुछ प्रारंभिकरण (अस्थायी रूप से) विफल हो सकता है।टाइप प्रारंभकर्ता (स्थिर कन्स्ट्रक्टर) अपवाद हैंडलिंग
ऐसा प्रतीत होता है कि स्थैतिक रचनाकारों को केवल एक बार बुलाया जाता है, भले ही पहले (असफल) प्रयास ने अपवाद फेंक दिया हो? मेरी कक्षा को तुरंत चालू करने के बाद के किसी भी प्रयास को वास्तव में कोड के निष्पादित किए बिना TypeInitializationException
के साथ विफल हो जाएगा।
सी # भाषा विनिर्देश बताता है कि एक स्थिर कन्स्ट्रक्टर को एक बार में बुलाया जाता है, लेकिन मूल रूप से यह एक त्रुटि में अपवाद करता है जिसे आप कभी भी ठीक नहीं कर सकते हैं, भले ही आप इसे पकड़ लें?
क्या मुझे यहां कुछ याद आ रही है? मुझे लगता है कि मुझे सेवा के इंस्टेंस कन्स्ट्रक्टर के लिए दूरस्थ रूप से खतरनाक कुछ भी ले जाना चाहिए और मैन्युअल रूप से जांच करना चाहिए कि कक्षा प्रारंभिकता पहले से सफलतापूर्वक पूरी हो चुकी है या नहीं?
यह वास्तव में मेरे पास है, सिवाय इसके कि मैं कुछ डबल चेक लॉकिंग का उपयोग करता हूं और मेरा' _initialized 'बूल' अस्थिर 'है (नहीं होना चाहिए डबल चेक लॉकिंग के बिना जरूरी हो) – Thorarin