如何将整数序列化为 ApplicationDataContainer

How to serialize integer to ApplicationDataContainer

我正在将一款旧游戏移植到 Windows 10 商店应用程序。 我可以写入然后读取字符串到应用程序设置:

ApplicationDataContainer^ localSettings = ApplicationData::Current->LocalSettings;

localSettings->Values->Insert("keyS", "hello");
String^ valueS = safe_cast<String^>(localSettings->Values->Lookup("keyS"));

我也可以放int值:

localSettings->Values->Insert("keyI", 123);

但是我该如何阅读呢?

??? valueI = safe_cast<???>(localSettings->Values->Lookup("keyI"));

Lookup returns Platform::Object^, 那么如何将其转换为 int?

它是一个 IBox -- 相当于 .NET 中的 "nullable"。

auto localSettings = ApplicationData::Current->LocalSettings;
localSettings->Values->Insert(L"forty-two", (int)42);
auto forty_two = static_cast<Platform::IBox<int>^>
  (localSettings->Values->Lookup(L"forty-two"));
if (forty_two != nullptr)
{
  int value = forty_two->Value;
  // use value
}