2015-03-17 7 views
9

के बारे में उलझन में मैं अपने डब्ल्यूसीएफ परियोजना में protobuf-net जोड़ने के लिए this tutorial का पालन कर रहा हूं। मेरे पास साझा डीटीओ लाइब्रेरी है। सर्वर और क्लाइंट दोनों डीटीओ कक्षाओं का उपयोग करते हैं। मैंने [OperationContract] विशेषताओं के साथ मेरी सभी सेवा विधियों को जिम्मेदार ठहराया है, लेकिन मैंने अपने डीटीओ कक्षाओं पर [DataContract] विशेषताओं को असाइन नहीं किया है।प्रोटोबफ-नेट डब्ल्यूसीएफ उपयोग

मैंने protobuf-net Nuget पैकेज जोड़ा और web.config पर कॉन्फ़िगरेशन जोड़ा।

मैं अपनी सेवा का परीक्षण करने के लिए आईआईएस एक्सप्रेस का उपयोग कर रहा हूं, और सोचा कि मुझे अब तक जो कुछ किया गया है उसके साथ ठीक होना चाहिए। हालांकि, कुछ कॉलों का परीक्षण करने के बाद, मैंने देखा कि मैं अपने क्लाइंट को protobuf-net जोड़ना भूल गया था और फिर भी सबकुछ अपेक्षित काम करता था (यानी क्रमबद्धता या deserialization से कोई त्रुटि नहीं)।

मुझे संदेह है कि प्रोटोबफ का उपयोग मेरे कार्यक्रम में बिल्कुल नहीं किया जाता है, और मुझे कुछ याद आ रहा है। I'd like to avoid using [DataContract] attributes लेकिन मैं उन्हें जोड़ने के साथ रह सकता हूं, अगर protobuf-net काम करने की आवश्यकता है।

मुझे और क्या याद आ रहा है?

+0

सामग्री बातचीत और एक अलग धारावाहिक प्रारूप में फॉलबैक? – Alex

+0

बस एक टिप्पणी: .NET 3.5 SP1 के रूप में, आपको डेटा अनुबंध विशेषताओं का उपयोग करने की आवश्यकता नहीं है, सभी सार्वजनिक सदस्यों को डिफ़ॉल्ट रूप से क्रमबद्ध किया जाता है। यदि, हालांकि, आप एक विशेषता लागू करते हैं, तो आपको उन्हें हर जगह लागू करने की आवश्यकता है। –

उत्तर

0

एक साल पहले मुझे एक ही समस्या का सामना करना पड़ा, जहां प्रोटोकबफ एक उत्कृष्ट विकल्प प्रतीत होता है, डब्ल्यूसीएफ के साथ इसमें कुछ कमियां होती हैं।

मैंने इन कमियों को दूर करने के लिए एक ओपन सोर्स प्रोजेक्ट बनाया है, यह प्रोटोबू-नेट लाइब्रेरी का उपयोग करता है और इसमें कार्यक्षमता जोड़ता है, जैसे कि आपको क्लाइंट के साथ अब असेंबली साझा करने की आवश्यकता नहीं है। हालांकि, फिर भी आपको डेटाकंट्रैक्ट विशेषताओं को वर्तमान में रखना आवश्यक है। https://github.com/maingi4/ProtoBuf.Wcf

अस्वीकरण::

आप इसे आजमाइए कर सकते हैं मैं निर्माता और ऊपर परियोजना के मालिक हूँ।