2012-09-18 25 views
14

कक्षा Employee में परिभाषा नहीं है, मेरे पास कुछ विधियां हैं, जो ठीक काम करती हैं। अब मैं'कक्षा' में 'विधि'

public void ExampleMethod() 
{   
} 

तो नई विधि को जोड़ने के लिए, उदाहरण के लिए करना चाहता था मैं इसे कहते

Employee employee = new Employee(); 
employee.ExampleMethod(); 

ExampleMethod डॉट के बाद प्रदर्शित IntelliSense में मौजूद है, जब मैं F12 मारा यह भी मुझे उस विधि को अनुप्रेषित, लेकिन प्रोजेक्ट शुरू करते समय मुझे एक त्रुटि मिली: 'कर्मचारी' में 'exampleMethod' की परिभाषा नहीं है और 'कर्मचारी' विधि का पहला तर्क स्वीकार करने वाला कोई 'एक्सटेंशन विधि' नहीं मिला है (क्या आप निर्देश का उपयोग कर रहे हैं या एक असेंबली संदर्भ?)

मैं नहीं करता यह नहीं पता कि यह त्रुटि क्यों हुई है, क्योंकि अन्य सभी पुराने तरीके ठीक काम करते हैं। समस्या क्या है?

1) आप पुराने DLL बात कर रहे हैं तो यह इस्तेमाल किया जा नहीं कर सकते:

+0

क्या यह कक्षा किसी अन्य असेंबली में है? – Tigran

+2

सभी मदद पुनर्निर्माण करता है? – devio

+2

क्या आप अपनी पूर्ण कर्मचारी कक्षा पोस्ट कर सकते हैं? स्वच्छ + पुनर्निर्माण सभी – KyorCode

उत्तर

19

तीन संभावनाएं हैं। तो आपने नए डीएलएल

2) का संदर्भ दिया है 2) यदि आप इसे विभिन्न नामस्थान में उपयोग कर रहे हैं और अन्य नेमस्पेस के डीएल का उपयोग करने का प्रयास कर रहे हैं तो यह इस विधि को संदर्भित नहीं करेगा।

3) आप परियोजना

मैं तीसरा विकल्प आप के लिए कारण हो सकता है लगता है के पुनर्निर्माण की जरूरत हो सकती है। आपकी सटीक समस्या को समझने के लिए कृपया अधिक जानकारी पोस्ट करें।

+2

4 में अपनी असेंबली मैन्युअल रूप से अपडेट करने का प्रयास करें 4) ओपी किसी प्रकार की कक्षा अस्पष्टता के साथ उलझन में हो सकता है और किसी भिन्न कर्मचारी/परियोजना से गलत कर्मचारी वर्ग का संदर्भ ले सकता है? +1। –

+0

+1 -> कक्षाओं के समान ही अपनी इकाई फ्रेमवर्क डेटाबेस सारणी का नाम न दें ... दोह। – teynon

+0

मुझे बस – KthProg

5

नाम स्थान नाम के साथ कक्षा बनाएं आपकी समस्या

namespace.Employee employee = new namespace.Employee(); 
employee.ExampleMethod(); 
+0

को साफ और पुनर्निर्माण करना पड़ा, मैंने मैन्युअल रूप से प्रत्येक क्लास कॉल से पहले नामस्थान जोड़ा। यह मेरे लिए काम किया। –

2

मैं एक ही समस्या थी resovle हो सकता है। उस प्रोजेक्ट को बदलता है जिसे मैं संदर्भित कर रहा था, निर्माण नहीं किया गया था। जब मैं दृश्य स्टूडियो में निर्माण कॉन्फ़िगरेशन प्रबंधक के पास गया और संदर्भ प्रोजेक्ट को सक्षम किया, तो समस्या हल हो गई।

0

कोड साझा करने वाली कई परियोजनाओं के समाधान में काम करते समय मुझे एक ही समस्या थी। यह पता चला कि मैं दूसरी परियोजना के फ़ोल्डर में डीएलएल को अपडेट करना भूल गया था।

मेरा सुझाव त्रुटि सूची विंडो में 'प्रोजेक्ट' कॉलम की तरह अच्छा लेना है और यह सुनिश्चित करना है कि यह परियोजना सही DLL का भी उपयोग करे।

बेस्ट सादर डोमिनिक Rooijackers

+0

प्रोजेक्ट कॉलम के बारे में सुझाव के लिए धन्यवाद। एएसपी.नेट में, ग्लोबल.एक्सएक्स को आपके बाकी कोड की तुलना में एक अलग परियोजना में माना जाता है, ऐसा लगता है? तो आप Global.asax से आंतरिक/मित्र तरीकों को कॉल नहीं कर सकते हैं। बहुत कष्टप्रद। – user169771

0

मैं एक ही समस्या थी। मैंने गुण फ़ोल्डर में AssemblyInfo.cs में असेंबली का संस्करण बदल दिया। लेकिन, मुझे कोई जानकारी नहीं है कि यह समस्या क्यों हुई। शायद संकलक यह नहीं समझता कि यह dll नया है, बस असेंबली के संस्करण को बदल रहा है।

0

आज जैसा कि आप वर्णन करते हैं, वही लक्षणों के साथ मुझे एक समस्या का सामना करना पड़ा। मैंने सभी फाइलें बंद कर दीं और केवल यह पता लगाने के लिए वीएस को पुनरारंभ किया कि कुछ फाइलें समाधान एक्सप्लोरर से गायब हो गईं।

निम्नलिखित मेरी समस्या हल हो गई: समाधान एक्सप्लोरर में वर्तमान प्रोजेक्ट का चयन करके, शीर्ष आइकन Show all files शीर्ष बार पर दिखाई देता है। फ़ाइल पर राइट-क्लिक करें और Include In Project का चयन करें।

Credit

1

मैं सिर्फ इस समस्या में पड़ गए; यह मुद्दा यहां पोस्ट किए गए अन्य उत्तरों से अलग लगता है, इसलिए अगर मैं किसी की मदद करता हूं तो मैं इसका उल्लेख करूंगा।

मेरे मामले में, मेरे पास एक असेंबली ("ए") में परिभाषित आंतरिक आधार वर्ग है, जो एक दूसरी असेंबली ("बी") में परिभाषित एक आंतरिक व्युत्पन्न वर्ग है, और एक परीक्षण असेंबली ("टेस्ट") है। मैंने InternalsVisibleToAttribute का उपयोग करके "टे" में असेंबली "बी" में परिभाषित आंतरिक खुलासा किया, लेकिन असेंबली "ए" के लिए ऐसा करने के लिए उपेक्षित किया। इसने समस्या के आगे संकेत के साथ शीर्ष पर उल्लिखित त्रुटि उत्पन्न की; असेंबली "ए" से "टेस्ट" का पर्दाफाश करने के लिए InternalsVisibleToAttribute का उपयोग करके इस मुद्दे को हल किया गया।

0

यदि आप किसी अन्य प्रोजेक्ट से कक्षा का उपयोग कर रहे हैं, तो परियोजना को पुन: निर्माण और फिर से डीएल बनाने की आवश्यकता है। सुनिश्चित करें कि पर उस प्रोजेक्ट के लिए "बिल्ड" की जांच की गई है - में कॉन्फ़िगरेशन प्रबंधक विजुअल स्टूडियो। तो संदर्भ परियोजना फिर से निर्माण और अद्यतन डीएलएल होगा।

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