के लिए जेएसननेट को डिफ़ॉल्ट सीरिएलाइज़र के रूप में कैसे सेट करें, क्या सीरियललाइज/डीएसरियललाइज इकाइयों के दौरान डिफ़ॉल्ट WCF DataContractSerializer व्यवहार को ओवरराइड करना संभव है और इसके बजाय JSON.NET का उपयोग करना संभव है?डब्ल्यूसीएफ आरईएसटी सेवा
मेरे पास सिटी इकाई को संभालने के लिए निम्न सेवा अनुबंध है। डिज़ाइन कारणों से शहर इकाई में IsReference = true है, और इसलिए डिफ़ॉल्ट DataContractSerializer त्रुटियां बढ़ाता है।
"जीईटी" विधियों के लिए मैं जेसनकॉन्टर.डिसरियलइज ऑब्जेक्ट के साथ स्थिति को संभाल सकता हूं, लेकिन "पुट, पोस्ट, डिलीट" विधियों के साथ डेटाकंट्रैक्टसेरियलाइज़र को प्राथमिकता मिलती है और IsReference इकाइयों के लिए शिकायत करने में असफलता को क्रमबद्ध नहीं किया जा सकता है।
IOperationBehavior को लागू करने के लिए मुझे यह Post मिल गया है और अपना स्वयं का सीरियलाइज़र प्रदान करता है लेकिन मुझे नहीं पता कि इसके साथ जेसन.NET को कैसे एकीकृत किया जाए। और मेरा मानना है कि इसके लिए और अधिक सीधा दृष्टिकोण होना चाहिए।
मैं इस परिदृश्य, या अन्य दृष्टिकोणों के बारे में सलाह के बारे में किसी भी मदद या मार्गदर्शन की सराहना करता हूं।
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class CityService
{
[Description("Get all Cities")]
[WebGet(UriTemplate = "")]
public Message Cities()
{
}
[Description("Allows the details of a single City to be updated.")]
[WebInvoke(UriTemplate = "{code}", Method = "PUT")]
public Message UpdateCity(string code, City city)
{
}
}
बहुत धन्यवाद
Hossam
ओलेग, बहुत धन्यवाद, यह स्ट्रीम प्रकार लौटकर एक आकर्षण की तरह काम करता है, यह माइक्रोस्कोफ्ट सीरियलाइज़र को रोकता है। मुझे डेटाकंट्रैक्टसाइरिएलाइज़र ऑपरेशनबिहियर के बारे में पता है, लेकिन यह मुझे XmlObjectSerializer से अपने स्वयं के सीरियलज़र को ले जाने के लिए ले जाता है जो एक आसान काम नहीं है। आपका प्रस्ताव बहुत आसान और सीधे आगे है, एक बार फिर धन्यवाद। – Hossam
यह आने वाली सिटी ऑब्जेक्ट को deserializing कैसे संभालता है? –
@ क्रिस्टोफर स्टॉट: उदाहरण के लिए देखें http://msdn.microsoft.com/en-us/library/ms734675.aspx "पठन संदेश" से शुरू होता है। – Oleg