2013-02-06 31 views
5

मुझे क्या चाहिए: मैं रोमिंग सेटिंग्स में जटिल डेटा प्रकारों को स्टोर करने की कोशिश कर रहा हूं।रोमिंग सेटिंग्स में जटिल डेटा प्रकार संग्रहीत

Data type not supported

क्या मैं की कोशिश की है:

Query q = ...; 
RoamingSettings.Values["query"] = q; 

एक त्रुटि दे रहा है:

public abstract class Query 
{ 
    [DataMember] 
    public Cube Cube { get; private set; } 

    [DataMember] 
    public List<Filter> Filters { get; private set; } 
    [DataMember] 

    public Slicer Slicer { get; set; } 
} 

समस्या क्या है: यह कैसे मेरे वस्तु लगता है कि है अलग भंडारण समग्र सेटिंग्स के विभिन्न क्षेत्रों में क्वेरी कक्षा के सदस्य। लेकिन क्वेरी क्लास के डेटा सदस्य फिर से विभिन्न वर्गों की वस्तुएं हैं और इसलिए समग्र में संग्रहीत नहीं किया जा सकता है। मूल्य ["सेटिंग"]।

कृपया देखें: windows 8 app roaming storage with custom class। समग्र प्रश्न का उपयोग करके उस प्रश्न का उत्तर दिया गया था लेकिन यह मेरे लिए लागू नहीं है।

मैं कैसे आगे बढ़ूं?

उत्तर

0

अंकुश,

की तरह आप RoamingSettings में कस्टम वस्तुओं का संग्रह को गिरवी रखना है, जो काफी क्या यह करने के लिए है नहीं है कोशिश कर रहे हैं लग रहा है। स्थानीय/रोमिंग सेटिंग्स आमतौर पर रजिस्ट्री में संग्रहीत होती हैं और सरल नाम-मूल्य जोड़े के लिए होती हैं।

इसके बारे में - आप अपना संपूर्ण ऑब्जेक्ट मॉडल लेते हैं और इसे फ़ाइल के रूप में भंडारण के लिए फ़्लैट करते हैं? इस तरह, आप अपने डेटा को आसानी से क्रमबद्ध/deserialize कर सकते हैं और आवश्यकता होने पर अपने ऑब्जेक्ट मॉडल को हाइड्रेट/डिहाइड्रेट कर सकते हैं। साथ ही, कई उपयोगकर्ता डिवाइसों में समन्वयित करने के लिए फ़्लैमेटेड सामग्री रोमिंग फ़ोल्डर में सहेजी जा सकती है। बस अपनी कस्टम ऑब्जेक्ट गुणों को जरूरी रूप से एनोटेट करें और डेटाकंट्रैक्टसेरियलज़र का उपयोग अपने डेटा को फ़्लैट/unflatten करने के लिए करें और रोमिंग फ़ोल्डर में एक एक्सएमएल फ़ाइल जारी रखें। बस एक त्वरित क्लाउड सिंक पर निर्भर न करें; विंडोज़ रोमिंग फ़ोल्डर में फ़ाइल को अवसरवादी रूप से सिंक करेगा।

यह MSDN त्वरित प्रारंभ की मदद करनी चाहिए:

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh700362.aspx

धन्यवाद!