समस्या:WCF Datacontract, कुछ क्षेत्रों deserialize नहीं है
मैं एक बाहरी प्रणाली से एक कॉल के लिए एक अंत बिंदु होने के लिए एक WCF सेवा सेटअप किया है। कॉल सादा एक्सएमएल भेज रहा है। मैं RequestBuilder का उपयोग कर फिडलर से सेवा में कॉल भेजकर सिस्टम का परीक्षण कर रहा हूं।
मुद्दा यह है कि मेरे सभी क्षेत्रों को दो क्षेत्रों के अपवाद के साथ deserialized किया जा रहा है। price_retail और price_wholesale।
मुझे क्या याद आ रही है? अन्य सभी फ़ील्ड बिना किसी मुद्दे के deserialize - सेवा जवाब देता है। यह सिर्फ इन क्षेत्रों में है।
एक्सएमएल संदेश:
<widget_conclusion>
<list_criteria_id>123</list_criteria_id>
<list_type>consumer</list_type>
<qty>500</qty>
<price_retail>50.00</price_retail>
<price_wholesale>40.00</price_wholesale>
<session_id>123456789</session_id>
</widget_conclusion>
सेवा विधि:
public string WidgetConclusion(ConclusionMessage message)
{
var priceRetail = message.PriceRetail;
}
संदेश वर्ग:
[DataContract(Name = "widget_conclusion", Namespace = "")]
public class ConclusionMessage
{
[DataMember(Name = "list_criteria_id")]
public int CriteriaId { get; set;}
[DataMember(Name = "list_type")]
public string ListType { get; set; }
[DataMember(Name = "qty")]
public int ListQuantity { get; set; }
[DataMember(Name = "price_retail")]
public decimal PriceRetail { get; set; }
[DataMember(Name = "price_wholesale")]
public decimal PriceWholesale { get; set; }
[DataMember(Name = "session_id")]
public string SessionId { get; set; }
}
अच्छा उत्तर। मैंने दोनों तरीकों की कोशिश की और व्यवहार बिल्कुल ठीक है कि आप कैसे वर्णन करते हैं। सरल चीजों को याद करने के लिए यह हमेशा एक नम्र अनुभव है। मुझे दिलचस्पी है कि DataContracts वर्णमाला क्रम में डिफ़ॉल्ट क्यों है। ऐसा लगता है कि यह घोषणा के आदेश को बनाए रखने के लिए और अधिक घोषणात्मक होगा ... लेकिन मुझे लगता है कि आदेश विशेषता की आपूर्ति सबसे अधिक घोषणात्मक है। –
हां। मैंने इसे हमेशा आदेश को स्पष्ट रूप से घोषित करने का अभ्यास किया है, बाद में चीजों को बहुत आसान बनाता है। – tomasr
क्या कोई अन्य धारावाहिक (एंटेडेल्यूवियन एक्सएमएलसेरियलाइज़र के अलावा) है जिसमें इस हड्डी के सिर का व्यवहार नहीं है? क्योंकि अगर मैं उस तरह के कठोर हाइपर-सख्त deserialization चाहता था, मैं बस बाइनरी का उपयोग करेंगे। – Pxtl