मेरे पास एक साधारण डब्ल्यूसीएफ सेवा अनुबंध है जो इंटरफेस के लिए ठोस कार्यान्वयन का उपयोग करता है, लेकिन अगर मैं कंक्रीट कक्षाओं के बजाय पैरामीटर में इंटरफेस का उपयोग करना चाहता हूं, तो यह मुझे वह त्रुटि देता है जो मैं नीचे प्रदर्शित करूंगा।मेरे डब्ल्यूसीएफ क्लाइंट में मेरे ऑपरेशन कॉन्ट्रैक्ट्स पैरामीटर के रूप में इंटरफेस क्यों नहीं ले सकते हैं?
यहाँ कोड है: अगर मैं IClientUser साथ ClientUser की जगह
[ServiceContract]
public interface IClientUserRegistration
{
[OperationContract]
void RegisterClientUser(ClientUser clientUser);
[OperationContract]
List<ClientUser> GetUsers();
}
, WCF टेस्ट ग्राहक का कहना है कि RegisterClientUser ऑपरेशन समर्थित नहीं है, क्योंकि यह प्रकार System.Object उपयोग करता है। अगर मैं सूची के साथ GetUsers के रिटर्न वैल्यू को प्रतिस्थापित करता हूं, तो यह कहता है कि यह ऑपरेशन समर्थित नहीं है क्योंकि यह System.Object [] प्रकार का उपयोग करता है। यह इन त्रुटियों को क्यों देता है?
आईसीलिएंट यूज़र का उपयोग करने का प्रयास करने का कारण यह है कि मैं आईसीलिएंट यूजर इंटरफेस को लागू करने वाले विभिन्न उपयोगकर्ता प्रकारों को कार्यान्वित कर सकता हूं और उन्हें रजिस्टर क्लाइंट में पास कर सकता हूं, लेकिन अगर मैं केवल क्लाइंटयूसर को पास करने में सक्षम हूं, तो मुझे एक गुच्छा बनाना होगा रजिस्टर क्लाइंट ओवरराइड जो विभिन्न प्रकार के उपयोगकर्ताओं को लेते हैं।
यदि यह एक आरईएसटी आधारित सेवा है, तो क्या मैं इंटरफेस का उपयोग कर सकता हूं या यह वही है। मैं इसके लिए नया हूं इसलिए मुझे माफ़ कर दो। मेरे प्रश्न के दूसरे भाग के बारे में आपने बताया कि एसओएपी में इंटरफेस की कोई अवधारणा नहीं है। अगर मैं अलग-अलग ग्राहकों को पंजीकृत करना चाहता हूं, तो मुझे RegisterClientUser विधि को ओवरराइड करना होगा, उदाहरण के लिए, RegisterClientUser (SuperUser superUser); – Xaisoft
हाँ, यह वही परवाह है। किसी ऑब्जेक्ट के भीतर सभी मानों का एक्सएमएल प्रतिनिधित्व करने की कोशिश कीजिए, लेकिन आपको केवल चाबियों का एक छोटा सा हिस्सा पता है। आप अपना काम पूरा नहीं कर पाएंगे। डब्ल्यूसीएफ इसे उसी तरह देखता है। –
स्पॉट ऑन - डब्ल्यूसीएफ कॉल ** नहीं ** .NET फ़ंक्शन कॉल हैं - वे क्लाइंट से सर्वर (और बैक) में पारित किए गए क्रमबद्ध संदेश हैं और इंटरफेस स्वयं को क्रमबद्ध करने के लिए उधार नहीं देते हैं .... –