2012-05-08 9 views
6

मैंने एसडीएल ट्रिडियन 2011 एसपी 1 पर सीडी ओडाटा webservice के लिए विजुअल स्टूडियो में एक सेवा संदर्भ उत्पन्न किया है और सबकुछ ठीक काम कर रहा है, लेकिन जब मैं कोड के साथ विशिष्ट घटक का अनुरोध करता हूं इस:बंद प्रकार घटक में संबंधित IsMultimedia सेटटेबल गुण नहीं है

ContentDeliveryService cdService1 = new ContentDeliveryService(new Uri("http://xxx:81/odata.svc")); 
var item = cdService1.Components.Where(p => p.ItemId == 29 && p.PublicationId == 1).First(); 
Console.WriteLine(item.ItemId); 

यह फेंकने है अपवाद:

The closed type ConsoleApplication1.CdService.Component does not have a corresponding IsMultimedia settable property. 

किसी को भी गर्म फिक्स यह पता है?

उत्तर

7

मुझे लगता है कि समस्या यह है कि सर्वर आपको एक ऐसी संपत्ति भेजता है जिसे क्लाइंट (IsMultimedia प्रॉपर्टी) के बारे में नहीं जानता है। आप सर्वर से प्रतिक्रिया देखने के लिए उदाहरण के लिए फिडलर का उपयोग करके इसकी पुष्टि कर सकते हैं। ऐसा तब हो सकता है जब सर्वर पर घटक प्रकार को खुले के रूप में चिह्नित किया गया हो (उन घोड़ों की तुलना में अधिक गुण हो सकते हैं)। क्लाइंट लाइब्रेरी आज सीधे खुले प्रकार का समर्थन नहीं करती है।

यदि आपको क्लाइंट पर IsMultimedia प्रॉपर्टी की आवश्यकता नहीं है तो आप cdService1.IgnoreMissingProperties = true सेट करके इस त्रुटि को दबा सकते हैं।

यदि आपको क्लाइंट पर IsMultimedia प्रॉपर्टी की आवश्यकता है, तो आपके लिए जेनरेट की गई क्लास क्लास आंशिक कक्षा होनी चाहिए, ताकि आप मैन्युअल रूप से यह संपत्ति IsMultimedia जोड़ सकें। फिर यह भी काम करना चाहिए।

3

ऐसा लगता है कि यह एक दोष है जो अगले संस्करण में तय किया जाएगा। IgnoreMissingProperties काम करता है स्थापना, अन्य समाधान इस संदर्भ की Reference.cs फ़ाइल को खोलने और IsMultimedia

+0

मैं इसी तरह की त्रुटि थी जब 2011 जीए की पूर्व-रिलीज़ संस्करण के साथ चारों ओर खेलने के लिए public global::System.Nullable<bool> Multimedia संपत्ति को बदलने के लिए है ... –