2009-04-10 101 views
0

我有一个WCF服务操作,它接受自定义类型MyQuery的数据协定参数 - function Search(q as MyQuery)。 MyQuery对象包含2个属性:Flex&WCF - 枚举错误

MyQuery.SearchPhrase (string) 
MyQuery.SearchType (custom enum SearchTypeEnum) 

我也有一个使用此服务的Flex客户端应用程序。但是,当Flex的调用搜索()操作,我得到了枚举属性以下错误:

“无法找到 类型定义“http://mydomain/2009/04/SearchTypeEnum::SearchTypeEnum

错误来自Flex的抛出,而它正在建立对服务的请求。

所以我的问题是.....有什么办法来解决这个问题在Flex?或者,我可以选择重新设计没有枚举的服务吗?

这是枚举数据契约是如何在服务层定义:

<DataContract(Namespace:="http://mydomain/2009/04/SearchTypeEnum")> _ 
Public Enum SearchTypeEnum 
    <EnumMember()> [Boolean] = 0 
    <EnumMember()> [NaturalLanguage] = 1 
End Enum

据我知道这是一个枚举数据合同的正确定义。我也尝试在服务和MyQuery类上使用ServiceKnownType和KnownType属性,但无济于事。

回答

0

我无法找到一种方法来使其工作。相反,我用字符串常量替换枚举。没有优雅,但它的作品。

0

我建议你尝试一个微不足道的.NET客户端 - 甚至可能是一个控制台应用程序。这个想法是看你是否可以得到任何应用程序来使用该服务。

+0

谢谢 - 已经尝试与.NET客户端,它工作正常。我还应该注意到,我有其他服务操作,从Flex工作正常。只有在引入枚举时才会发生此错误。 – Keith 2009-04-10 16:29:11