我设计了一个返回对象的 Web 服务函数。当我在 UWP 中调用 Web 服务的函数时,对象的一个字符串属性具有值。但是,当我使用来自Xamarin项目的相同参数调用函数时,该特定属性始终为null,即使其他属性具有正确的值也是如此。
我发现了问题。当返回对象派生自其他对象时,就会出现此问题。基架引用派生类的属性在 System.Xml.Serialization.XmlElementAttribute 中获取Order属性,该属性与基类的 order 属性重叠。 UWP无缝处理这种情况,但Xamarin Android不能!您可能会考虑在 Web 服务中标记您的属性,以便它们的顺序不会重叠,但不会。不幸的是,脚手架会覆盖您提供的任何装饰提示。我能找到的唯一方法是扁平化层次结构。我只是将所有基类属性放到类中并删除了继承。 我很幸运拥有Web服务的源代码,但情况并非总是如此。我认为这是一个严重的错误,因为 Xamarin 应用程序可能需要支持一些老式服务。