You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Application.Current.Properties存储数据重启后无法读取如何解决

问题原因

  • 键名不匹配:你存储用户信息时使用的键是Utente,但读取时判断的键是Username,两个键名完全不一致,自然无法命中判断逻辑。
  • 未执行持久化保存:Application.Current.Properties的修改默认只保存在内存中,必须显式调用异步保存方法才会写入本地存储,应用重启后内存数据释放,就无法读到之前的赋值。

解决方案

  1. 首先修正存储逻辑,添加持久化保存代码:
Application.Current.Properties["Utente"] = App.UTENTE;
Application.Current.Properties["Token"] = App.TOKEN;
// 新增持久化调用,确保数据写入本地存储
await Application.Current.SavePropertiesAsync();

注意SavePropertiesAsync是异步方法,建议放在应用的异步生命周期回调(如OnStart)中执行,避免同步阻塞导致的死锁问题

  1. 修正读取逻辑的判断键名,和存储时保持一致,同时添加空值校验避免异常:
if (Application.Current.Properties.ContainsKey("Utente") && Application.Current.Properties.ContainsKey("Token"))
{
    UTENTE = Application.Current.Properties["Utente"]?.ToString();
    TOKEN = Application.Current.Properties["Token"]?.ToString();
    // 非空校验通过再执行后续逻辑
    if (!string.IsNullOrEmpty(UTENTE) && !string.IsNullOrEmpty(TOKEN))
    {
        DependencyService.Register<MockDataStore>();
        InitializeComponent();
        MainPage = new MainPageLogin();
    }
}

内容的提问来源于stack exchange,提问作者user16937336

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:15:03