मेरी सार्वभौमिक विंडोज़ अनुप्रयोग में मैं XmlSerializer के माध्यम से एक्सएमएल फ़ाइलों में अपनी वस्तुओं बदलने उपयोगकर्ता डेटा संग्रहीत कर रहा हूँ बनाया जा सकता। System.InvalidOperationException::UWP - System.InvalidOperationException: एक अस्थायी वर्ग (परिणाम = 1) संकलन त्रुटि
एप्लिकेशन संकलन किया गया था, निर्माण और पूरी तरह से रिहाई के लिए (कोड पर किसी भी बदलाव के बिना) किसी भी तरह जब तक चल रहा निर्माण मुझे इस त्रुटि देने के लिए शुरू कर दिया एक अस्थायी वर्ग जनरेट करने में असमर्थ (परिणाम = 1)।
अगर मैं निर्माण या एप्लिकेशन डिबग पर यह मैं त्रुटि मिलती है (.NET देशी उपकरण श्रृंखला सक्रिय है) के साथ दोषरहित लेकिन रिहाई पर काम करता है चलाते हैं।
मैं पहले से ही सी पर अनुमति दी: \ Windows \ अस्थायी हर किसी के लिए फ़ोल्डर। यहां तक कि मेरी मां के पास भी इसका उपयोग है लेकिन त्रुटि बनी हुई है।
यह वास्तव में पढ़ने/लिखने समस्या XmlSerializer पर मुझे आश्चर्य है कि किसी भी तरह से UWP परियोजना पर serializer अस्थायी फ़ोल्डर बदलने के लिए है, तो है।
public static async Task<T> ReadObjectFromXmlFileAsync<T>(string filename)
{
// this reads XML content from a file ("filename") and returns an object from the XML
T objectFromXml = default(T);
var serializer = new XmlSerializer(typeof(T));
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile file = await folder.GetFileAsync(filename).AsTask().ConfigureAwait(false);
Stream stream = await file.OpenStreamForReadAsync().ConfigureAwait(false);
objectFromXml = (T)serializer.Deserialize(stream);
stream.Dispose();
return objectFromXml;
}
public static async Task SaveObjectToXml<T>(T objectToSave, string filename)
{
// stores an object in XML format in file called 'filename'
var serializer = new XmlSerializer(typeof(T));
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile file = await folder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting).AsTask().ConfigureAwait(false);
Stream stream = await file.OpenStreamForWriteAsync().ConfigureAwait(false);
using (stream)
{
serializer.Serialize(stream, objectToSave);
}
}
//This uses a subfolder
public static async Task<T> ReadObjectFromXmlFileAsync<T>(string filename)
{
// this reads XML content from a file ("filename") and returns an object from the XML
T objectFromXml = default(T);
var serializer = new XmlSerializer(typeof(T));
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFolder subFolder = await folder.GetFolderAsync("Notes").AsTask().ConfigureAwait(false);
StorageFile file = await subFolder.GetFileAsync(filename).AsTask().ConfigureAwait(false);
Stream stream = await file.OpenStreamForReadAsync().ConfigureAwait(false);
objectFromXml = (T)serializer.Deserialize(stream);
stream.Dispose();
return objectFromXml;
}
मैं क्या याद आ रही है:
यहाँ कोड है कि मैं वस्तुओं को क्रमानुसार करने के लिए इस्तेमाल किया है? क्या कोई मदद कर सकता है?
यदि आप डायग्नोस्टिक स्तर लॉगिंग चालू करते हैं तो अधिक संकेत हो सकते हैं।अगर यह स्पष्ट नहीं है, तो कृपया हमें [email protected] पर मेल करें। एमएलके दिन की छुट्टी के कारण मंगलवार तक लोग कार्यालय में नहीं होंगे। –
मुझे लगता है कि आपके मामले में एक टी temp = डिफ़ॉल्ट (टी) प्रतिबिंब का उपयोग करेगा और .NET मूल संकलक "temp" ऑब्जेक्ट बनाने के लिए जो भी डेटा को क्रमबद्ध करने या deserialize करने की आवश्यकता है उसे पकड़ने का प्रयास करेगा, लेकिन इसके बारे में कुछ भी नहीं जानता, जिसके परिणामस्वरूप एक कबूतर obj.GetType VB.net में मेरे लिए यह करेगा। उस बुरे लड़के को एक डिफ़ॉल्ट प्रकार के बिना एक संस्करण बनाओ और मुझे लगता है कि आप ठीक रहेगा। – sonofsmog