मैं एक वस्तु है कि कुछ इस तरह दिखता का निर्माण करने की कोशिश कर रहा हूँ करने के लिए सूची deserialize कैसे करें:Enumerable.ToList <>() <>
public class MyObject
{
private IList<AnotherObject> items;
public List<AnotherObject> Items
{
return items.AsEnumerable().ToList<AnotherObject>();
}
}
मैं अपने दाल के रूप में NHibernate का उपयोग कर रहा है और यह मानचित्रण है सीधे आइटम फ़ील्ड और जो ठीक काम करता है।
मैं विंडोज वर्कफ़्लो का भी उपयोग कर रहा हूं और प्रतिलिपि गतिविधि सामान्य जेलीस्ट के साथ काम नहीं करती है। (http://social.msdn.microsoft.com/Forums/en-US/windowsworkflowfoundation/thread/2ca74b60-fd33-4031-be4b-17a79e9afe63) यह मूल रूप से मुझे IList <> के बजाय सूची <> रैपर का उपयोग करने के लिए मजबूर कर रहा है। यह निश्चित रूप से प्रत्यक्ष एनएचबीर्नेट मैपिंग को तोड़ता है क्योंकि एनएचबीर्नेट के आईएलआईस्ट कार्यान्वयन को सीधे सूची में नहीं डाला जा सकता है।
** संपादित करें: विंडोज वर्कफ़्लो आवश्यकता वास्तव में इसका मतलब है कि मैं सूची में टाइप-सुरक्षित पहुंच खोने जा रहा हूं इससे कोई फर्क नहीं पड़ता कि इसे एक आईएलआईस्ट की आवश्यकता है।
अब लक्ष्य इस ऑब्जेक्ट को क्रमबद्ध/deserialize करना है। यह द्विआधारी क्रमिकरण के साथ ठीक काम करता है लेकिन अंतर्निहित एनएचबेर्नेट प्रॉक्सी ऑब्जेक्ट्स निषेध त्रुटियों के साथ विस्फोट करते हैं जब मैं उन्हें deserialize करने की कोशिश करता हूं।
तो मैंने एक्सएमएल क्रमबद्ध करने की कोशिश की। सीरियलाइजेशन ठीक काम करता है और मुझे सीरियलाइज्ड एक्सएमएल फाइल में मेरी अच्छी ठोस वर्ग परिभाषा देता है जो पूरी तरह से निबर्ननेट प्रॉक्सी को बाहर निकाल देता है। हालांकि, जब इसे deserialize करने का प्रयास, मैं आइटम के रूप में सूची में आइटम जोड़ने में असमर्थ हूं। अनन्य। सूची कॉल आइटम के माध्यम से अंतर्निहित सूची में जोड़ा जाने नहीं देगा। विधि विधि।
क्या किसी के पास इस पर कोई विचार है? क्या मैं इस बारे में गलत तरीके से जा रहा हूं?
** संपादित करें: एनएचबीर्नेट कंक्रीट क्लास NHibernate.Collection.Generic.PersistentGenericBag जो वास्तव में सीधे IList को लागू करता है। हालांकि, मैंने जेनेरिक सूची के सभी प्रकार के सुरक्षित लाभ खो दिए। यह मुझे प्रत्येक बच्चे के ऑब्जेक्ट के लिए एक रैपर लिखने के दायरे में वापस रखता है और यदि संभव हो तो मैं वास्तव में इससे बचना चाहता था।
मैं रैपर मार्ग पर विचार कर रहा हूं लेकिन मैं वास्तव में अपने डोमेन मॉडल में प्रत्येक बच्चे के ऑब्जेक्ट के लिए एक रैपर लिखना नहीं चाहता था। तब जेनेरिक का मुद्दा क्या है? :) मैं मानता हूं कि यह शायद आखिरी उपाय समाधान है। –
वर्तमान समाधान के साथ मैं काम कर रहा हूं एक रैपर वर्ग है जो IList और IList दोनों लागू करता है। टाइप-चेकिंग करने के लिए गैर-जेनेरिक तरीकों को लिखा गया है। लेकिन मूल रूप से यह सिर्फ एक आंतरिक IList लपेटता है। –