Web 服务调用缺少字段值 xamarin IOS

Web service call missing field value xamarin IOS

我有一个 Web 引用,它被 Xamarin IOS 应用程序、Xamaring Android 应用程序和 Windows Store 应用程序使用。

在我更新 Xamarin 之前,这一切都运行良好。

现在,有一个字段,但它适用于 Android 和 Windows 应用程序。

我曾多次尝试更新网络参考,但都没有成功。我还尝试在本地调试 Web 服务,看看它是否 returns 和它一样。

当我在我的 Windows 商店应用程序中收到它时,它看起来像这样:

在我的 IOS 应用程序中,它看起来像这样:

出于某种原因,永远不会设置 StructureId。在我更新 Xamarin 之前,情况并非如此。

谁知道我做错了什么,或者遇到过同样的问题?

看起来链接器删除了未使用的成员。默认值没有改变(它与您的更新无关)但您应该检查您的应用程序是否使用 Link SDK(而不是 Link全部).

如果你想要一个更小的可执行文件并设置 Link all 来实现这一点,那么你需要在你的结构上添加 [Preserve] 属性重新序列化(例如用于网络服务)。

我成功了。我不确定它是否缓存了任何东西,或者什么,但它有助于在网络服务调用中添加一些 "noise" 。 我刚刚在 Reference.cs 中将 DateTime.Now.Ticks 添加到我的网络服务 URL,所以它总是一个新的 URL 调用:

this.Url = "http://somewebsitename.com/ReportService/ReportService.asmx?v=" + DateTime.Now.Ticks;