हमारे पास बहुत सारी कक्षाओं के साथ एक बड़ा आवेदन है। वर्तमान में हम मोनोटच के साथ आईपैड में इस .NET एप्लिकेशन को पोर्ट कर रहे हैं। हमें DataContractSerializer के साथ कुछ समस्याएं हैं और हम मार्क ग्रेवेल के प्रोटोबफ-नेट सीरियलाइज़र का उपयोग करना चाहते हैं।डब्लूसीएफ डेटाकंट्रैक्ट सेरियलाइज़र से प्रोटोबफ-नेट पर सही ढंग से माइग्रेट कैसे करें?
क्लाइंट और सर्वर के बीच संचार एक डब्ल्यूसीएफ सेवा द्वारा प्रबंधित किया जाता है।
एक डब्ल्यूसीएफ सेवा क्लाइंट और सर्वर के सामने एक इंटरफेस से बना है, और सर्वर पर इस इंटरफ़ेस का एक कार्यान्वयन है।
इंटरफ़ेस की तरह दिखता है:
[ServiceContract]
public interface IMyService
{
[OperationContract]
SomeObject MyFunction(SomeObject myObject);
}
सर्वर साइड कार्यान्वयन कि तरह लग रहा है:
[ServiceBehavior(...)]
public class MyService
{
public SomeObject MyFunction(SomeObject myObject)
{
}
}
हमारी कक्षाएं कि तरह लग रहा है:
[DataContract]
public class MyClass
{
[DataMember]
public int SomeProp {get; set;}
[OnSerialized]
public void OnSerialized(StreamingContext context)
{
}
}
तो यहाँ मेरी सवाल कर रहे हैं :
मेरी कक्षाओं, डब्ल्यूसीएफ इंटरफेस और डब्ल्यूसीएफ कार्यान्वयन में क्या बदलाव होगा।
मैं डिफ़ॉल्ट डब्लूसीएफ डेटाकंट्रैक्टसाइराइज़र को प्रोटोबफ सीरियलाइज़र में कैसे बदलूं।
कृपया ध्यान दें, monotouch पर कि मैं केवल Protobuf
और Protobuf.Meta
नामस्थान की पहुंच है। Custom WCF DataContractSerializer
ऊपर समाधान DataContractSerializerOperationBehavior उपयोग करता है:
[संपादित करें] मैं serializer क्रम स्वैप करने के लिए एक रास्ता मिल गया। प्रोटोबफ-नेट ऐसा व्यवहार प्रदान करता है?
दूसरा क्या मार्क ने कहा: ऐसा न मानें कि आप एमएस .NET पर serializer को स्वैप कर सकते हैं कि आप इसे मोनो में कर सकते हैं, मोनो टच के साथ चलो। मोनो का डब्ल्यूसीएफ स्टैक अपरिपक्व है और एमटी केवल उस से एक सबसेट लागू करता है ... – TheNextman