我看到一個由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