我看到一个非常奇怪的问题,即 Flex 使用的 .NET Web 服务。
我有一个非常简单的类,除了具有 [XmlAttribute('xxx')] 属性的属性之外什么都没有。
public class OrderAddress
{
public OrderAddress() {}
[XmlAttribute("firstName")]
public string FirstName { get; set; }
[XmlAttribute("lastName")]
public string LastName { get; set; }
[XmlAttribute("company")]
public string Company { get; set; }
[XmlAttribute("address1")]
public string Address1 { get; set; }
... (more properties)
}
问题是在 Flex 中,当这个对象被反序列化时,调试器中的每个字段都为空。OrderAddress 类的实例不为空,只是所有字段。我 100% 确定我的 Web 服务代理层是最新的,并且 100% 肯定有数据通过网络传输,如Fiddler所示。
非常非常奇怪的是,如果我将这些属性之一更改为序列化为元素(而不是 XmlAttribute)并仅重新编译我的 C# web 服务,那么 Flex 可以立即识别数据。如果我添加一个完全未使用的字段 - 就像public string Foo = "foo";
那样,它也会突然起作用。
我有点记得以前看到过类似的东西,但不记得我是否成功修复它。
对我来说是凌晨 3 点 30 分,我需要推迟我的核心故障排除,但把它扔在这里,以防任何人阅读它。代码在一个模块中,我知道有时会导致一些奇怪 - 但这似乎很奇怪。