使用async方法在App.xaml.cs中设置属性



我想在App.xaml.cs中有一个属性,看起来像:

private static Settings _settings = null;
public static Settings AppSettings
{
   get
   {
      if(_settings == null)
         _settings = await Settings.Deserialize();
      return _settings;
   }
}

在Settings.Descialize()中,我正在从文件中读取设置,以便它有下一个签名:

public static async Task<Settings> Deserialize() { ... }

我不能在物业内使用等待。但在这种情况下,什么是好的解决方案?

生成getter和setter函数,而不是属性。首先,您不应该将属性用于有副作用的东西(没有保存到存储/db/web服务或从存储/db/web服务等)