如何为 Windows 通用应用创建共享 storage/settings?
How to make shared storage/settings for Windows Universal app?
我正在尝试使用 Visual Studio 2015 在 C# 中为 Windows 8.1 开发通用应用程序。为了测试,我在 Windows 项目的 RoamingSettings 中保存了一些文本,然后在尝试阅读时Windows Phone Project 中的文本由于 "NullRefrenceException" 而导致应用程序崩溃。这是我的代码
在 Windows 项目中:
Windows.Storage.ApplicationDataContainer RoamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
RoamingSettings.Values["USERNAME"] = userNameInput.Text;
在 Windows Phone 项目中:
Windows.Storage.ApplicationDataContainer RoamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
myTextBlock.Text = RoamingSettings.Values["USERNAME"].ToString();
正如我提到的 Windows Phone 应用程序在模拟器和物理 phone 中都崩溃了,我是否为此功能编写了所需的代码?是漫游 Settings/Folder 是存储通用应用程序数据的地方吗?
感谢您的宝贵时间
首先,要使漫游设置生效,您需要使用相同的 Microsoft
帐户登录两台设备。
这些设置不会立即同步,因此您无法在 Windows
设备上更新设置后立即在 phone 设备上测试它们。
还要确保检查您尝试检索的值是否不是 null
:
if(RoamingSettings.Values.ContainsKey("USERNAME"))
{
myTextBlock.Text = RoamingSettings.Values["USERNAME"].ToString();
}
在此之后你应该不会得到任何 NullReferenceException
,但是当值稍后同步时,if
块中的代码最终将执行。
我正在尝试使用 Visual Studio 2015 在 C# 中为 Windows 8.1 开发通用应用程序。为了测试,我在 Windows 项目的 RoamingSettings 中保存了一些文本,然后在尝试阅读时Windows Phone Project 中的文本由于 "NullRefrenceException" 而导致应用程序崩溃。这是我的代码
在 Windows 项目中:
Windows.Storage.ApplicationDataContainer RoamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
RoamingSettings.Values["USERNAME"] = userNameInput.Text;
在 Windows Phone 项目中:
Windows.Storage.ApplicationDataContainer RoamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
myTextBlock.Text = RoamingSettings.Values["USERNAME"].ToString();
正如我提到的 Windows Phone 应用程序在模拟器和物理 phone 中都崩溃了,我是否为此功能编写了所需的代码?是漫游 Settings/Folder 是存储通用应用程序数据的地方吗?
感谢您的宝贵时间
首先,要使漫游设置生效,您需要使用相同的 Microsoft
帐户登录两台设备。
这些设置不会立即同步,因此您无法在 Windows
设备上更新设置后立即在 phone 设备上测试它们。
还要确保检查您尝试检索的值是否不是 null
:
if(RoamingSettings.Values.ContainsKey("USERNAME"))
{
myTextBlock.Text = RoamingSettings.Values["USERNAME"].ToString();
}
在此之后你应该不会得到任何 NullReferenceException
,但是当值稍后同步时,if
块中的代码最终将执行。