2012-12-02 17 views
5

ठीक है, मुझे लगता है कि मेरे प्रश्न का उत्तर ऑनलाइन है, लेकिन मुझे यह नहीं मिल रहा है। मैं बस इतना करना चाहता हूं कि प्रोग्राम में टेक्स्ट संसाधन फ़ाइल जोड़ें जो मैं कोडडॉम के साथ संकलित कर रहा हूं और उसके बाद संकलित प्रोग्राम में उस टेक्स्ट फ़ाइल तक पहुंच सकता हूं। एम्बेडेड संसाधन जोड़ने के लिए, मैं निम्नलिखित कोड का इस्तेमाल किया:एम्बेडेड संसाधनों को जोड़ना और पुनर्प्राप्त करना

 System.Resources.ResourceWriter writer = new System.Resources.ResourceWriter("Resources.resx"); 
     writer.AddResource("EoS.txt", Form1.MasterEncoder.GetBytes(Properties.Resources.Eos)); 
     writer.Generate(); 
     writer.Close(); 
     Parameters.EmbeddedResources.Add("Resources.resx"); 

यहाँ "पैरामीटर" मेरी संकलक मापदंडों आपत्ति है और "Eos.txt" फ़ाइल, जिसमें एक संसाधन है मैं लिखने के लिए कोशिश कर रहा हूँ है आवेदन। जब मैं इस कार्यक्रम का निर्माण यह किसी भी त्रुटि फेंक नहीं है, लेकिन जब मैं इस कोड है, जो मैं प्रपत्र लोड ईवेंट में जोड़े का उपयोग कर नव संकलित कार्यक्रम में इस पाठ फ़ाइल को आकर्षित करने का प्रयास करें:

  _assembly = Assembly.GetExecutingAssembly(); 
     _textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("Resources.EoS.txt")); 
     TextFile = _textStreamReader.ReadToEnd(); 

मैं यह त्रुटि मोटे तौर पर: "मान शून्य पैरामीटर नाम नहीं हो सकता है: स्ट्रीम।" मैंने कार्यक्रम के नामस्थान में "संसाधन" को बदलने की कोशिश की है और कई अन्य छोटे बदलाव और कुछ भी काम नहीं किया है। मुझे यकीन नहीं है कि मैं पूरी तरह से गलत ट्रैक पर हूं या नहीं, लेकिन मुझे लगता है कि मेरी समस्या कोडडॉम के साथ है। कोई सुझाव?

+0

क्या त्रुटि आपको बताती है कि यह किस लाइन पर है? – FoolishSeth

+1

ठीक है, मुझे यकीन है कि यह StreamReader लाइन में है। – user1869878

+0

हटाया गया "एम्बेडेड" टैग। एम्बेडेड कोड/सिस्टम से संबंधित नहीं – Neowizard

उत्तर

0

यह लगभग निश्चित रूप से अप्रत्याशित तरीके से संसाधन नाम बनने के कारण है। एक चाल का उपयोग मैं जब मैं अपने सिर के ऊपर से याद नहीं कर सकते, अस्थायी रूप से कोड की इस पंक्ति को जोड़ने के लिए है: सही नाम की

string[] resourceNames = _assembly.GetManifestResourceNames(); 

उस पर एक ब्रेकपाइंट सेट, और इस तरह याद दिलाना अपने आप को, और फिर उसकी प्रतिलिपि कोड में है कि।