我看到一个由Flex使用的.NET webservice的一个非常奇怪的问题。Flex无法反序列化仅包含属性的webservice元素
我有一个非常简单的类,只有属性[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中,当此对象反序列化时,每个SINGLE字段在调试器中都为空。 OrderAddress类的实例不是null,只是所有字段。我100%确定我的Web服务代理层是最新的,并且有100%的绝对数据通过线路,如Fiddler所示。
非常非常奇怪的是,如果我将这些属性之一更改为序列化为一个元素(而不是XmlAttribute)并仅重新编译我的C#web服务,那么Flex可以立即识别数据。如果我添加一个完全未使用的字段 - 如public string Foo = "foo";
那么这也突然起作用。
我记得以前看过类似的东西,但不记得如果我成功修复它。
它对我来说是凌晨3点30分,我需要推迟我的硬核故障排除,但是如果它对任何人阅读都很明显,就把它扔到这里。代码位于一个模块中,我知道它有时会导致一些奇怪 - 但这似乎是非常奇怪的。
不知道你的情况是否与我的情况相同 - 但你是否尝试切换到WCF而不是ASMX – 2010-04-09 04:53:26