zoukankan      html  css  js  c++  java
  • WindowsPhone开发 +使用Live SDK相关API操作SkyDrive + IsolatedStorageSettings的Bug。

    环境描述:Windows 7 + Visual Studio 2010 + 真机(HTC c110e radar)。

    问题描述:使用Live SDK相关API操作SkyDrive。说实话微软的这个SDK还真是老旧,.Net4.5已经对异步调用提供了完善的API。这个还这么老旧不更新,开发起来确实很耗精力。

    操作SkyDrive的步骤分为简单的两部:1.验证身份(Microsoft.Live.LiveAuthClient)。2.各种操作(Microsoft.Live.LiveConnectClient)。

    问题麻烦在于这两个步骤操作都是异步,但是很蛋疼的微软提供的API是那种类似 (***_Complalted)的。。硬生生把咱们的一个操作序列割裂为两个部分。 

    我这边软件只要退出去之后,在进入软件就要再次手动点击《同意》按钮才能再次访问SkyDrive。但是,我看WindowsPhone7版的电子书软件:书中圣 身份验证了一次就好久才会再次要求重新验证身份,根本不用像我这边每次进软件访问SkyDrive就要再次点击《同意》按钮

    问题推测:我估计是《书中圣》中在身份验证之后的信息被存储了。

    采取措施:所以,我就把经过身份验证后得到的状态(Microsoft.Live.LiveConnectSession)给存进了IsolatedStorageSettings.ApplicationSettings["session"]=liveConnectSession。。

    之后当场进行获取(LiveConnectSession)(IsolatedStorageSettings.ApplicationSettings["session"])可以得到正确的值.

    但是,当软件退出再打开后,获取(LiveConnectSession)(IsolatedStorageSettings.ApplicationSettings["session"])的值就会报异常:NotKeyFindException。

    用软件查看了隔离存储空间跟目录下的_ApplicationSettings文件,发现被我给存进的键值对中没有“session”,倒是多了一个key:Microsoft.Live.LiveAuthClient.RefreshToken。

    这貌似是个Bug。

  • 相关阅读:
    LeetCode 1032. Stream of Characters
    LeetCode 872. Leaf-Similar Trees
    LeetCode 715. Range Module
    LeetCode 353. Design Snake Game
    LeetCode 509. Fibonacci Number
    LeetCode 632. Smallest Range Covering Elements from K Lists
    LeetCode 963. Minimum Area Rectangle II
    LeetCode 939. Minimum Area Rectangle
    LeetCode 727. Minimum Window Subsequence
    LeetCode 844. Backspace String Compare
  • 原文地址:https://www.cnblogs.com/605395451/p/2997123.html
Copyright © 2011-2022 走看看