2010-11-29 15 views
91

मेरे एप्लिकेशन को ऐसी वेब सेवा से बात करने की आवश्यकता है जिस पर ऑनलाइन डब्लूएसडीएल परिभाषा नहीं है। हालांकि डेवलपर्स ने मुझे डब्लूएसडीएल फाइल के साथ आपूर्ति की।WSDL फ़ाइल से विजुअल स्टूडियो में वेब सेवा प्रॉक्सी बनाएं

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

मैं इस डब्ल्यूएसडीएल फ़ाइल का उपयोग कर इस वेब सेवा से बात करने के लिए कोड कैसे उत्पन्न करूं?

उत्तर

104

WSDL.exe का उपयोग करके और फिर अपनी प्रोजेक्ट में जेनरेट की गई फ़ाइल (.cs) सहित।

आग अप दृश्य स्टूडियो कमांड प्रॉम्प्ट (दृश्य स्टूडियो के तहत/प्रारंभ मेनू में उपकरण) तो टाइप

>wsdl.exe [path To Your WSDL File] 

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

+2

धन्यवाद!और आप निर्यात की गई फ़ाइल के पथ के लिए पैरामीटर का उपयोग कर सकते हैं। उदा। > Wsdl.exe http://www.example.com/service.wsdl/ओ: C: \ Users \ X \ डेस्कटॉप – gkon

3

.NET Framework SDK के साथ भेजे गए WSDL To Proxy class tool को आजमाएं। मैंने पहले कभी इसका इस्तेमाल नहीं किया है, लेकिन यह निश्चित रूप से आपको लगता है कि आपको क्या चाहिए।

120

WSDL.exe का उपयोग करने के लिए मेरे लिए काम नहीं किया (मुझे एक लापता प्रकार के बारे में एक त्रुटि दी गई), लेकिन मैं वीएस में अपनी परियोजना पर राइट-क्लिक करने में सक्षम था और "सेवा संदर्भ जोड़ें" का चयन कर रहा था। मैंने पता फ़ील्ड में wsdl फ़ाइल के पथ में प्रवेश किया और "जाओ" दबाएं। ऐसा लगता है कि सभी उचित प्रकारों को ढूंढने में सक्षम हो गया और कक्षाओं को सीधे मेरी परियोजना में जोड़ा गया।

+3

सामना एक ही परिदृश्य और अपने सुझाव मुझे हताशा और शायद कुछ बाल की बहुत सारी बचा लिया। अच्छी तरह से योग्य प्रतिनिधि आपको दिया गया है। –

+0

मैं इस कोशिश की, फ़ाइल आयात (अप्रत्यक्ष परिणाम के रूप में, आप सभी साइटों :) पर 100 मिल गया), लेकिन मैं अपने कोड कक्षाओं – guiomie

+1

मैं इस विधि MSVC 2015 उपयोग करने की कोशिश में देख नहीं कर सकते, लेकिन यह URL का उपयोग wsdl फ़ाइल पर कार्रवाई करने से इनकार कर दिया । इसलिए मैं विधि एंड्रयू एम – Hermann

0

के बाद से वेब सेवा के लिए सच बाध्यकारी यूआरएल फ़ाइल में स्थित है, आप अपने स्थानीय मशीन से इन आसान चरणों कर सकता है:

1) उदाहरण के लिए आपके स्थानीय कंप्यूटर पर फ़ाइल सहेजें:

C:\Documents and Settings\[user]\Desktop\Webservice1.asmx 

2) विजुअल स्टूडियो में अपनी परियोजना पर राइट क्लिक करें> वेब संदर्भ जोड़ें चुनें, एक संवाद खुल जाएगा।

3) में यूआरएल बॉक्स की प्रतिलिपि स्थानीय फाइल स्थान सेल्सियस से ऊपर: \ दस्तावेज़ और सेटिंग्स [उपयोगकर्ता] \ डेस्कटॉप \ Webservice1.asmx, अगला क्लिक करें

4) अब आप कार्यों दिखाई देगा, अपने संदर्भ के लिए नाम, संदर्भ जोड़ें

5) आप कर चुके हैं! आप इसे अपने एप्लिकेशन में नामस्थान के रूप में उपयोग करना शुरू कर सकते हैं चिंता न करें कि आपने स्थानीय फ़ाइल का उपयोग किया है, क्योंकि किसी भी तरह से सेवा के लिए सही यूआरएल बाध्यकारी अनुभाग

+2

यह पहले से ही [इस मौजूदा उत्तर] में सुझाव दिया गया था (http://stackoverflow.com/a/14360303/447356) क्यों दोहराने? –

13

पर फ़ाइल में स्थित है, नोट नोट पर: यदि आप सभी फ़ाइलों की स्थानीय रूप से (न केवल WSDL फ़ाइल लेकिन यह भी XSD फ़ाइलें) है तो आप उस तरीके से wsdl.exe आह्वान कर सकते हैं:

wsdl.exe [path to your wsdl file] [paths to xsd files imported by wsdl] 

इस तरह wsdl.exe सभी dependecies स्थानीय स्तर पर हल कर सकते हैं और सही ढंग से प्रॉक्सी वर्ग उत्पन्न करता है ।

शायद यह किसी को कुछ समय बचाएगा - यह "अनुपलब्ध प्रकार" त्रुटि हल करता है जब सेवा ऑनलाइन उपलब्ध नहीं होती है।

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