2013-04-09 87 views
0

我有这样的独立存储功能写入到存储:独立存储不工作在Windows Phone应用程序

public static void WriteIsolatedStorage(object ObjectToStore, StorageType Key) 
{ 

    using (var storage = System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication()) 
    using (var storageFile = storage.CreateFile(Key.ToString())) 
    { 
     var xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(string)); 
     switch (Key) 
     { 
      case StorageType.UserCredentials: 
       xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(dmWFUserCredentials)); 
       break; 
      case StorageType.BackgroundAgentUserCredentials: 
       xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(dmWFUserCredentials)); 
       break; 
      case StorageType.UserProfile: 
       xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(dmWFUser)); 
       break; 
      case StorageType.InboxItems: 
       xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(ObservableCollection<dmWFInboxItem>)); 
       break; 
      case StorageType.InboxTileItems: 
       xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(ObservableCollection<dmInboxTileInfo>)); 
       break; 
      case StorageType.DocumentHeaders: 
       xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(ObservableCollection<dmWFDocumentHeader>)); 
       break; 
      case StorageType.SearchCache: 
       xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(List<List<dmWFDocumentHeader>>)); 
       break; 
      case StorageType.FacebookProfile: 
       xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(dmFBUserProfile)); 
       break; 
      case 
       StorageType.BaseUrl: 
       xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(dmWFURLSetting)); 
       break; 
      default: 
       break; 
     } 
     xmlSerializer.Serialize(storageFile, ObjectToStore); 
    } 

} 

然后这里是我的功能,从这个存储获得:

public static dmWFURLSetting GetBaseUrl(StorageType Key) 
{ 
    try 

    { 

     using (var storage = System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication()) 
     { 
      using (var storageFile = storage.OpenFile(Key.ToString(), System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite)) 
      { 
       dmWFURLSetting result = new dmWFURLSetting(); 
       var xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(dmWFURLSetting)); 
       return (dmWFURLSetting)xmlSerializer.Deserialize(storageFile); 
      } 
     } 

    } 
    catch (Exception) 
    { 
     return null; 
    } 

} 

很好,而且那么这里是我如何从m前端调用这些方法,然后viemodel,我正在使用mvvm fr这款手机应用程序。 前端电话:

public string URL = (WorkflowBase.BaseURL != null ? WorkflowBase.BaseURL.ToString() : ""); 

这里是在后端的公共财产:

public static string BaseURL = AccTech.WP8.Helpers.IsolatedStorage.GetBaseUrl(Helpers.IsolatedStorage.StorageType.BaseUrl).BaseUrl.ToString(); 

好了,所以来这里的怪异的一部分,我知道当我开始完全关闭独立存储后的仿真器(缓存)是完全干净的,所以如果这个函数被调用,我会得到一个空的回报......你可以看到在我的前端叫我做了一个内联,如果,如果我得到一个空值,则使其“”。所以这里是我运行时得到的错误。 PS:如果我做URL静态应用程序的工作原理 enter image description here

好,这里是错误我得到当我尝试逐步完成整个过程:

enter image description here

我身体无力得到这个工作,我已经尝试了谷歌提供的一切...但没有任何反应,如果有人可以请给我一个答案,我会很高兴。

,如果你需要更多的数据或信息,请让我知道

+0

检查dmWFURLSetting有(德)序列化和公共构造适当的属性。 – kindasimple 2013-04-09 20:14:58

回答

0

WorkflowBase.BaseURL!= null,则是指向这个workflowbase类来从未改变公众变量它得到了所以这就是为什么错误occoured数据! 。

所以本周的耶小白错误! :P

0

是的,我也越来越这类exception.But区域这背后的例外是你的独立存储不包含要访问如此关键,如果任何现金存取独立存储首先检查contain.In的Visual Studio还检查有多少通过在独立存储对象中使用断点来锁定独立存储中的密钥。

相关问题