मेरा पहला सवाल तो यह उपयुक्त है आशा:WCF सेवा संदर्भ का अपना अनुबंध इंटरफेस उत्पन्न करता है, पुन: उपयोग नहीं होगा मेरा
साझा इंटरफ़ेस विधानसभा - मैं एक 'साझा' विधानसभा जो एक इंटरफेस है, चलो है की कॉल यह IDocRepository
है। यह [ServiceContract]
के साथ चिह्नित है और कई [OperationContract]
-चिह्नित विधियां हैं।
WCF कार्यान्वयन विधानसभाओं - मैं प्रत्येक साझा विधानसभा संदर्भित दो WCF सेवा परियोजनाओं है, प्रत्येक एक WCF सेवा के रूप में है कि इंटरफ़ेस को लागू करने।
उपभोक्ता असेंबली - अंत में, मेरे पास एक 'क्लाइंट' प्रोजेक्ट है, जो दो डब्ल्यूसीएफ सेवाओं में से प्रत्येक के संदर्भ में साझा असेंबली का भी संदर्भ देता है।
public partial class ExampleClient : System.ServiceModel.ClientBase<SomeNamespace.ExampleSvcRef.IDocRepository>, SomeNamespace.ExampleSvcRef.IDocRepository {
मैं क्या उम्मीद
मैं आशा व्यक्त की है कि दोनों संदर्भों के बजाय स्वचालित रूप से वारिस होगा:
हालांकि, उपभोक्ता विधानसभा में उत्पन्न सेवा संदर्भ इंटरफेस की एक स्वत: जनरेट संस्करण से निकाले जाते हैं इंटरफ़ेस मैंने परिभाषित किया है कि उपभोक्ता/ग्राहक असेंबली भी संदर्भित कर रहा है। पैरामीटर और रिटर्न प्रकारों के लिए प्रदान की जाने वाली कक्षाओं के पुन: उपयोग की तरह, लेकिन सेवा इंटरफ़ेस के लिए।
क्यों
तो यह है कि मैं या तो सेवा संदर्भ प्रॉक्सी का एक उदाहरण बना सकते हैं और मेरी इंटरफ़ेस प्रकार करने के लिए इसे डाल सकता।
तो मैं हर बार उत्पन्न कोड को संशोधित कर सकता हूं, लेकिन बेहतर तरीका होना चाहिए ...?
(संपादित करें: मैं क्या ज़रूरत है दोनों सेवा संदर्भ के लिए चयनित 'संदर्भित विधानसभाओं में पुन: उपयोग प्रकार' और 'पुन: उपयोग प्रकार के सभी संदर्भित विधानसभाओं में' विकल्प)
ग्रेट सॉल्यूशन, धन्यवाद –
मैं दूसरे विकल्प के साथ जा रहा था, लेकिन मुझे त्रुटि मिलती है कि एक एंडपॉइंट एड्रेस निर्दिष्ट होना चाहिए। मेरे पास एक ही अनुबंध (इंटरफ़ेस) निर्दिष्ट कॉन्फ़िगरेशन फ़ाइल में एक एंडपॉइंट सेट है, लेकिन ऐसा लगता है कि ऐसा नहीं लगता है? क्या आप मदद कर सकते हैं? –
कभी नहीं; आपको एंडफॉइंट कॉन्फ़िगरेशन नाम को चैनलफ़ैक्टरी <> कन्स्ट्रक्टर में पास करने की आवश्यकता है। –