2012-11-25 11 views
5

मैं Windows 8 ऐप्स के निर्माण कर रहा हूँ और निम्न अपवाद के साथ आए हैं:अपवाद जब SuspensionManager.SaveAsync() कॉल

SuspensionManager

में विफल रहा है निम्न कोड चलाते समय:

private async void OnSuspending(object sender, SuspendingEventArgs e) 
{ 
    var deferral = e.SuspendingOperation.GetDeferral(); 
    await SuspensionManager.SaveAsync(); 
    deferral.Complete(); 
} 

विधि की तीसरी पंक्ति पर अपवाद होता है, और यह वास्तव में कोई विवरण नहीं देता है।

मैं नेट पर इसके बारे में कुछ भी उपयोगी नहीं ढूंढ पाया। क्या किसी ने इसे पहले कभी देखा है?

// संपादित

इस तथ्य को मैं Windows 8 फेसबुक एसडीके के लिए एक dynamic प्रकार चर का उपयोग कर रहा से संबंधित हो सकता।

dynamic चर की अनुमति नहीं है?

dynamic result = await FB.GetTaskAsync("fql", parameters); 
if (result.data.Count > 0) 
{ 
    return result.data[0].src_big as string; 
} 

और अपवाद के लिए कॉल स्टैक:

// संपादित 2

यहाँ dynamic चर का उपयोग है

mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task task) + 0x5e bytes 
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task) + 0x35 bytes 
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.GetResult() + 0x16 bytes 
FacebookRandomizer.exe!FacebookRandomizer.App.OnSuspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) Line 86 + 0xa5 bytes C# 
[Native to Managed Transition] 

पहले तीन, बाहरी कोड कर रहे हैं और चौथा मेरी विधि App.xaml.cs. में है।

उत्तर

2

उत्तर मिला, और यह पूरी तरह से फेसबुक-एसडीके से संबंधित नहीं है।

मैं पृष्ठ पर एक बिटमैप छवि को सहेज रहा था, निलंबन पर, और स्पष्ट रूप से यह काम नहीं करता है।

BitmapImage img = RandomImage.ImageSource as BitmapImage; 
pageState["currentImage"] = img; 

और नया एक:

BitmapImage img = RandomImage.ImageSource as BitmapImage; 
Uri uriSource = img.UriSource; 
pageState["currentImage"] = uriSource; 
1

मैं यह सुनिश्चित करने मैं serializable प्रकार था इस पर काम करने में सक्षम था (मेरे मामले में यह था सरल viewmodel कक्षाएं

यहाँ पुराने कोड है)। फिर प्रोजेक्टर में Shared प्रोजेक्ट में, यह सुनिश्चित करना कि SuspensionManager मेरे प्रकारों के बारे में जानता था। मानक अंतर्निर्मित धारावाहिकों ने अपना काम किया, और मैं किया गया।

public App() { 
     // ... existing code ... 
     SuspensionManager.KnownTypes.Add(typeof(TypeOne)); 
     SuspensionManager.KnownTypes.Add(typeof(TypeTwo)); 
    } 
संबंधित मुद्दे