2013-02-22 33 views
14

में एक इकाई फ्रेमवर्क कॉम्प्लेक्स प्रकार का उपयोग करते समय वेब एपीआई सहायता पृष्ठ के लिए काम नहीं कर रहे नमूने मेरे पास एक ईएफ कोड पहला मॉडल है जिसमें कुछ जटिल प्रकार शामिल हैं। जेनरेटिंग वेब एपीआई नियंत्रक बिना किसी समस्या के काम करते हैं, लेकिन http://blogs.msdn.com/b/yaohuang1/archive/2012/08/15/introducing-the-asp-net-web-api-help-page-preview.aspx में वर्णित वेब एपीआई सहायता पृष्ठ उत्पन्न करते समय नमूने जेनरेट नहीं होते हैं। दिया गया त्रुटि संदेश है:मॉडल

मीडिया प्रकार 'एप्लिकेशन/जेसन' के लिए नमूना उत्पन्न करने के लिए फॉर्मेटर 'जेसनमीडिया टाइप टाइपर' का उपयोग करते समय एक अपवाद हुआ है। अपवाद संदेश: एक या अधिक त्रुटियां हुईं।

बाकी मीडिया प्रकारों के लिए भी यही बात होती है। मुझे पता है कि जटिल समय और क्रमबद्धता के साथ कुछ समय पहले एक समस्या थी, लेकिन यह हल हो गया था जब जेएसएन.NET फॉर्मेटर को वेब एपीआई में डिफ़ॉल्ट रूप से शामिल किया गया था।

क्या इससे संबंधित हो सकता है? क्या किसी और को भी यही समस्या हो रही है? कोई विचार?

उत्तर

32

मेरा अनुमान है कि यह शायद आपके मॉडल के रेफरेंसिंग लूप के कारण है। उदाहरण के लिए, क्या आप जेसन फॉर्मेटर में निम्नलिखित परिवर्तन करके सहायता पृष्ठ उत्पन्न करने का प्रयास कर सकते हैं। आप नमूना उत्पन्न हो रही देखना चाहिए:

 config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize; 
     config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects; 

इसके अलावा, आप वास्तव में भी रनटाइम के दौरान इसी तरह की त्रुटि देखना चाहिए अगर आप उपरोक्त सेटिंग नहीं बनाते हैं।

XmlFormatter और स्वयं संदर्भ लूप के लिए, आप here देख सकते हैं।

+0

आप बिल्कुल सही थे, ऐसा हुआ कि प्रत्येक मॉडल जिसमें रेफरेंसिंग लूप था, भी एक जटिल प्रकार था। आपको बहुत - बहुत धन्यवाद! – kkara

+3

आप इसे WebApiConfig.cs में रखना चाहते हैं। – bbodenmiller

+2

ऐसा करने पर मुझे अभी भी अजीब $ ref और $ id टैग मिल रहा था। मुझे एक बेहतर तरीका मिला: अपने माता-पिता के बच्चे के संदर्भ को आंतरिक के रूप में प्राप्त करें। स्रोत: http://truncatedcodr.wordpress.com/2012/09/10/entity-framework-circular-references/ – WiteCastle