मैं अपने डब्ल्यूसीएफ आरईएसटी सेवा (4.0 ढांचे) में डिफ़ॉल्ट डेटाकंट्रैक्टजसनसेरियलज़र को स्वैप करने के लिए NETFx Json.NET MediaTypeFormatter nuget पैकेज का उपयोग करने की कोशिश कर रहा हूं। मैंने अपने प्रोजेक्ट में पैकेज डाउनलोड किया और ग्लोबल.एएसएक्स फ़ाइल में कोड की निम्नलिखित पंक्तियां जोड़ दीं।डब्ल्यूसीएफ आरईएसटी सेवाओं के लिए JSON.NET Serializer
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes();
// Create Json.Net formatter serializing DateTime using the ISO 8601 format
var serializerSettings = new JsonSerializerSettings();
serializerSettings.Converters.Add(new IsoDateTimeConverter());
var config = HttpHostConfiguration.Create();
config.Configuration.OperationHandlerFactory.Formatters.Clear();
config.Configuration.OperationHandlerFactory.Formatters.Insert(0, new JsonNetMediaTypeFormatter(serializerSettings));
}
लेकिन जब मैं सेवा चलाने यह अभी भी DataContractJsonSerilizer क्रमबद्धता के लिए उपयोग करता है। नीचे वह वर्ग है जो मैं अपनी सेवा से लौट रहा हूं।
[DataContract]
public class SampleItem
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string StringValue { get; set; }
[DataMember]
public DateTime DateTime { get; set; }
}
नीचे फ़िडलर में सेवा से प्रतिक्रिया है।
आप देख सकते हैं कि दिनांक समय आईएसओ प्रारूप है जो मैं ऊपर कोड में serializerSettings में निर्दिष्ट किया है में नहीं है। यह मुझे बताता है कि जेएसओएन.नेट सीरिएलाइज़र का उपयोग वस्तुओं को क्रमबद्ध करने के लिए नहीं किया जाता है।
किसी भी मदद की सराहना करेंगे।
वास्तव में मैं इसी तरह के परिदृश्य के साथ होता हूं, लेकिन मेरी डब्ल्यूसीएफ सेवाओं को विंडोज सेवा में होस्ट किया जाता है। उपर्युक्त कोड निम्नलिखित अपवाद फेंकता है: "System.InvalidOperationException: 'ServiceHostingEnvironment.EnsureServiceAvailable' को वर्तमान होस्टिंग वातावरण में शामिल नहीं किया जा सकता है। इस API को यह आवश्यक है कि कॉलिंग एप्लिकेशन को आईआईएस या WAS में होस्ट किया जाए।" कोई विचार? –