मुझे आवश्यकता है कि अंतिम उपयोगकर्ता स्थानीय संसाधनों को बदल सकता है और आवेदन को पुनरारंभ करने की आवश्यकता के बिना एप्लिकेशन में परिवर्तन दिखाई दे सकते हैं। परिदृश्य स्पष्ट करने के लिएएएसपी.नेट स्थानीयकरण: एप्लिकेशन को पुनरारंभ किए बिना संसाधनों को बदलना?
अद्यतन:
मैं कार्यावधि में स्थानीय संसाधनों बदलने के बारे में बात कर रहा हूँ। आइए कहें कि मेरे पास एक पृष्ठ के जर्मन अनुवाद में एक टाइपो है। फिर कुछ व्यवस्थापक-उपयोगकर्ता को उस टाइपो को रनटाइम में बदलने की संभावना होनी चाहिए। यूआई में इस बदलाव को प्रतिबिंबित करने के लिए पुनर्वितरण या पुनरारंभ करने की आवश्यकता नहीं होनी चाहिए।
मैं एएसपी.नेट एमवीसी 3 का उपयोग कर रहा हूं।
मेरे पास कौन से विकल्प हैं?
मैं custom ResourceProvider लिख रहा हूं जो डेटाबेस से संसाधन लोड करता है।
यह बहुत ज्यादा नहीं प्रयास लगता है, लेकिन अब तक मैं दो कमियां ने कहा:
- यह DataAnnotations कि MVC3 में सुविधाजनक सत्यापन के लिए उपयोग किया जाता है के साथ काम नहीं कर रहा है (DataAnnotations एक ErrorMessageResourceType पैरामीटर, के साथ काम जो केवल संकलित संसाधनों के साथ काम करता है)
- हमें मूल रूप से संसाधनों (जैसे अनुवाद आदि) के प्रबंधन के लिए अपना टूलिंग प्रदान करना होगा, जो दयालु है, क्योंकि इसके लिए बहुत सारे टूल हैं जो resx-files के साथ काम करते हैं।
अन्य विकल्प क्या हैं? रनटाइम पर तैनात रेक्स-फाइलों का हेरफेर एक विकल्प होगा?
लेकिन मुझे संदेह है कि जब एप्लिकेशन उन परिवर्तनों का पता लगाता है तो एप्लिकेशन स्वचालित रूप से "पुनरारंभ" होता है: मुझे संदेह है कि एएसपी.नेट को पता चलता है कि resx-files बदल गई है, फिर यह एप्लिकेशन-पूल को पुन: उपयोग करती है और नई resx-files को संकलित करती है उड़ना।
क्या यह सही है? क्या इसके आसपास कोई रास्ता है?
मैंने अभी तक तैनाती से पहले उपग्रह असेंबली में संसाधनों को संकलित करने में नहीं देखा है। क्या यह वेब अनुप्रयोगों के लिए भी एक अनुशंसित परिदृश्य है?
लेकिन संकलित उपग्रह असेंबली के साथ भी मुझे संदेह है कि एएसपी.नेट आवेदन को पुनरारंभ करता है, जब उन असेंबली फ्लाई पर बदल जाती हैं। क्या ये सही है?
मुझे किसी भी अनुभव में रुचि होगी कि मूल आवश्यकता को कैसे संतुष्ट किया जा सकता है? और मुझे ऊपर बताए गए विकल्पों के बारे में किसी भी टिप्पणी में दिलचस्पी होगी।
क्या आपने [इस उत्तर] में प्रस्तावित UpdatableResXResourceProvider का प्रयास किया है (http://stackoverflow.com/questions/1535027/app-domain-restarts-when-resx-file-changes-any-way-to-avoid- यह/1853530 # 1853530)? –
क्षमा करें मुझे रनटाइम पर मौजूदा संसाधनों को बदलने के लिए याद आती है, मुझे लगता है कि आपका एकमात्र विकल्प एक कस्टम संसाधन प्रदाता है, लेकिन मैंने कस्टम एनोटेशन का उपयोग किये बिना डेटा एन्नोटेशन मुद्दे को हल करने के लिए कोई साफ समाधान नहीं देखा है। – TheCodeKing
मेरे पास ऐसा करने का एक तरीका है, लेकिन केवल तभी जब आपकी संसाधन कुंजी तय की जाती है? – TheCodeKing