如何使用C#(Xamarin Forms)保存和访问应用程序周围的服务器响应

本文关键字:应用程序 访问 周围 响应 服务器 保存 何使用 Xamarin Forms | 更新日期: 2023-09-27 17:59:36

我正在尝试创建一个从服务器接收json数据的应用程序,我想知道如何访问应用程序周围保存的服务器响应?例如,json响应可以包含一个键"score"、"username"等,需要在不同的屏幕上显示,但在我推送一个新窗口(Navigation.PushModalAsync(…))后,我无法访问从新窗口接收到的数据。

到目前为止,我能够:

  • 向服务器发送投递请求
  • 接收并反序列化json

现在,我需要能够在不同的屏幕上访问整个应用程序的响应,但我无法做到这一点。

ServerResponseObject result = JsonConvert.DeserializeObject<ServerResponseObject>(json.ToString());

ServerResponseObject是我创建的一个类

我希望能够访问不同页面和屏幕中的"结果"变量。在全球范围内访问它

我试图声明一个全局变量并创建一个类,但该类是静态的,服务器响应不是静态的。

对这个问题的任何建议(或新方法)都将不胜感激。感谢


更新

如果我将类"ServerResponseObject"设置为静态,那么我就不能再使用这个:

ServerResponseObject result = JsonConvert.DeserializeObject<ServerResponseObject>(json.ToString());

这意味着,我必须手动将服务器响应中的数据分配给每个类属性,而且当属性发生更改时,也很难更新应用程序周围的标签。

如何使用C#(Xamarin Forms)保存和访问应用程序周围的服务器响应

如果你想在应用程序重新启动时保留你的数据,你可以将其保存在App.Current.Properties字典中,也可以使用James Montemagnos设置插件,这可能更好,因为它通过特定平台的数据存储进行保存。

并且,您不应该将要保存的对象设置为项目中的静态类。相反,创建ServerResponseObject的静态属性,并从json中为其赋值。