2009-09-22 13 views
11

मैं उपयोग करते हुए मेरे .net वेबसाइट में एक resx फ़ाइल लोड करने के कोशिश कर रहा हूँ .resources लोड करने का प्रयास:संसाधनप्रबंधक फ़ाइल .resx नहीं

ResourceManager rm = new ResourceManager("Project.Resource", Assembly.GetExecutingAssembly()); 

Resource.resx फ़ाइल में फ़ोल्डर App_LocalResources है और होना करने के लिए सेट कर दिया जाता निर्माण पर असेंबली में एम्बेडेड।

जब मैं का उपयोग कर resx फ़ाइल तक पहुँचने का प्रयास:

rm.GetString("key"); या rm.GetString("key", culture);

मैंने एक त्रुटि संदेश मिलता है:

किसी भी संसाधन नहीं मिल सका उचित निर्दिष्ट संस्कृति के लिए या तटस्थ संस्कृति। सुनिश्चित करें कि "Project.Resource.resources" सही ढंग से एम्बेडेड किया गया था या संकलन समय पर विधानसभा "परियोजना" में जुड़ा हुआ है, या कि सभी उपग्रह विधानसभाओं आवश्यक लोड करने योग्य हैं और पूरी तरह से पर हस्ताक्षर किए करें।

.resources पर ध्यान दें ... यहां क्या हो रहा है पर कोई विचार है?

+0

क्या कोई डिज़ाइनर फ़ाइल भी नहीं बनाई गई है? –

उत्तर

3

मुझे लगता है कि आप जिस तरह से संसाधन प्रबंधक का उपयोग कर रहे हैं वह गलत है। यह post देखें।

यह भी ध्यान दें, जब आप विजुअल स्टूडियो कमांड प्रॉम्प्ट खोलते हैं, & res res.exe चलाते हैं, तो यह कहता है कि इसका संसाधन संसाधन फ़ाइलों को एक प्रारूप से दूसरे प्रारूप में परिवर्तित करने के लिए उपयोग किया जाता है (यानी संसाधनों के लिए resx)। मुझे लगता है, आपको अपनी फ़ाइल को resx & से संसाधनों में कनवर्ट करने की आवश्यकता होगी, फिर संसाधन प्रबंधक का उपयोग करके इसे लोड करें।

+1

मुझे सही ट्रैक पर रखने के लिए धन्यवाद ... मुझे संसाधन प्रबंधक का उपयोग नहीं करना चाहिए, मैंने अपने पृष्ठ में <% $ संसाधन: फ़ाइल नाम, कुंजी%> वाक्यविन्यास का उपयोग करके समाप्त किया –

1

स्पष्ट रूप से .resx एक्सटेंशन जोड़ें।

आप ऑटो-जेनरेटेड क्लास का भी उपयोग कर सकते हैं और इसकी प्रॉपर्टी का उपयोग कर सकते हैं यदि यह आपके प्रोजेक्ट के लिए उपयुक्त है।

+0

यदि मैं "प्रोजेक्ट। रिसोर्स" में .resx जोड़ता हूं तो मुझे एक ही त्रुटि मिलती है लेकिन फ़ाइल के लिए Project.Resource.resx.resources –

+0

क्षमा करें, मुझे याद आया कि आपका .resx App_LocalResources में है। मेरी कोई भी पोस्ट लागू नहीं होती है ... –

3

मुझे यकीन नहीं है कि आप .NET Framework का किस संस्करण का उपयोग कर रहे हैं।

जिस तरह से आप संसाधन प्रबंधक को जीवन में लाते हैं, उसे चैन करने का प्रयास करें।

ResourceManager rm = 
    new ResourceManager("Project.Resource", 
         System.Reflection.Assembly.Load("App_LocalResources")); 

यह काम करना चाहिए।

यह कंक्रीट पुनर्विक्रेता प्रबंधक के स्वचालित रूप से जेनरेट की गई .designer.cs कक्षा की स्थिर संपत्ति के रूप में भी सामने आया है।

13

संसाधनप्रबंधक में .resx लोड करने के लिए आप

var rm = new ResourceManager("Namespace.ResxName", Assembly.GetAssembly()); 

निर्दिष्ट नाम स्थान की जरूरत है या आप मुक्त करने के लिए संसाधनप्रबंधक प्राप्त कर सकते हैं सेट पहुँच संशोधक अंदर आंतरिक या सार्वजनिक करने के लिए संसाधन संपादक प्रबंधित, उसके बाद वी.एस. ResxName.Designer उत्पन्न होगा।सीएस

var rm = ResxName.ResourceManager; 
+1

+ डिजाइनर कोड के माध्यम से संसाधनों तक पहुंचने की विधि के लिए 1 – Boggin

4

स्ट्रिंग द्वारा पढ़ने संसाधन का आश्चर्यजनक रूप से सरल तरीका उपलब्ध नहीं है:

ResourceNamespace.ResxFileName.ResourceManager.GetString("ResourceKey") 

यह (कुंजी द्वारा संसाधनों पढ़ने उदाहरण के लिए, जहां "डॉट नोटेशन" नहीं किया जा सकता संसाधन कुंजी है जब के लिए स्वच्छ और सुरुचिपूर्ण समाधान है डेटाबेस में बने)।

संबंधित मुद्दे