一个特定的 属性 在使用 android 模拟器时从 Web 服务返回 null
One particular property is returned null from a web service when using an android simulator
我设计了一个 Web 服务函数,returns 一个对象。当我在 UWP 中调用 Web 服务的函数时,对象的一个字符串 属性 具有值。但是当我使用来自 Xamarin 项目的相同参数调用函数时,即使其他属性具有正确的价值观。
我发现了问题。当 return 对象派生自某个其他对象时会出现这种情况。脚手架引用的属性派生 class 在 System.Xml.Serialization.XmlElementAttribute 中获得 Order 属性,与基础 class 的顺序属性重叠。
UWP 可以无缝处理这种情况,但 Xamarin Android 不能!您可能会想在 Web 服务中标记您的属性,以便它们的顺序不会重叠,但是不会。不幸的是,脚手架会覆盖您提供的任何装饰提示。我能找到的唯一方法是扁平化层次结构。我只是将所有基础 class 属性放入 class 并删除了继承。
我很幸运拥有网络服务的源代码,但情况并非总是如此。我认为这是一个需要升级的 严重 错误,因为 Xamarin 应用程序可能需要支持一些老式服务。
我设计了一个 Web 服务函数,returns 一个对象。当我在 UWP 中调用 Web 服务的函数时,对象的一个字符串 属性 具有值。但是当我使用来自 Xamarin 项目的相同参数调用函数时,即使其他属性具有正确的价值观。
我发现了问题。当 return 对象派生自某个其他对象时会出现这种情况。脚手架引用的属性派生 class 在 System.Xml.Serialization.XmlElementAttribute 中获得 Order 属性,与基础 class 的顺序属性重叠。 UWP 可以无缝处理这种情况,但 Xamarin Android 不能!您可能会想在 Web 服务中标记您的属性,以便它们的顺序不会重叠,但是不会。不幸的是,脚手架会覆盖您提供的任何装饰提示。我能找到的唯一方法是扁平化层次结构。我只是将所有基础 class 属性放入 class 并删除了继承。 我很幸运拥有网络服务的源代码,但情况并非总是如此。我认为这是一个需要升级的 严重 错误,因为 Xamarin 应用程序可能需要支持一些老式服务。