2015-04-17 11 views
12

मैं अपने एएसपी.NET वेबपीआई प्रोजेक्ट में सभी डिफ़ॉल्ट सेटिंग्स के साथ स्वाशबकल 5 का उपयोग कर रहा हूं। यह मुझे उत्तर की स्कीमा दिखाने के लिए मेरे विधि के आउटपुट को क्रमबद्ध करता है। मैं प्रलेखन कि इस तरह दिखता है हो रही है:k__BackingField सी # में हटाएं (स्वाशबकल/स्वैगर के माध्यम से देखा गया)

Response Class (Status 200) 
Model Model Schema 
[ 
    { 
    "<Key>k__BackingField": "string", 
    "<Value>k__BackingField": "string", 
    "<Id>k__BackingField": 0 
    } 
] 

यह सी # कोड का पालन करते हुए उत्पन्न होता है

/// <summary> 
    ///  Fetches all system configuration items 
    /// </summary> 
    /// <returns>List of <see cref="SystemConfigurationDto" /> items</returns> 
    public IList<SystemConfigurationDto> GetAllSystemConfigurationItems() 
    { 
     var result = CommandProcessor.ProcessCommand(new SystemConfigurationQueryCommand()) as SystemConfigurationQueryCommandResponse; 

     return result.Results.ToList(); 
    } 

जहां result.Results मूल रूप से वस्तुओं की एक मानक सूची है, प्रत्येक इन कुंजी/मान/आईडी युक्त खेत। मैंने यहां https://conficient.wordpress.com/2014/05/22/getting-rid-of-k__backingfield-in-serialization/ पढ़ा है कि [serializable] विशेषता इस पर असर डाल सकती है लेकिन यदि संभव हो तो मैं उस विशेषता से छुटकारा पाने के लिए तैयार नहीं हूं। क्या इस धारावाहिक कलाकृति को समायोजित करने के लिए कोई नुस्खा है?

उत्तर

20

WebApiConfig.cs को यह करें:

config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = 
    new DefaultContractResolver { IgnoreSerializableAttribute = true }; 

यह [Serializable] के साथ चिह्नित कक्षाओं के लिए इस मुद्दे को हल करता है। मेरे पास कोई समस्या नहीं है, भले ही कक्षाओं में कोई विशेषता न हो, इसलिए मैं हमेशा इस सेटिंग का उपयोग करता हूं।

+0

यह सब सुबह मुझे था। अचानक मुझे कुछ नूगेट पैकेजों को अपग्रेड करने के बाद अचानक इसका सामना करना पड़ा। समाधान पहले कई महीनों के लिए ठीक काम किया है। '[Serializable] 'विशेषता नहीं है, और कहीं भी नहीं, कभी भी इस्तेमाल नहीं किया गया है। इस कोड स्निपेट को जोड़कर इसे हल किया गया। श्रीमान आपसे बहुत अधिक बाध्य! – ceej

+0

धन्यवाद, मेरे लिए भी काम किया – spooti

संबंधित मुद्दे