我有一个WCF服务操作,它接受自定义类型MyQuery的数据协定参数 - function Search(q as MyQuery)
。 MyQuery对象包含2个属性:
MyQuery.SearchPhrase (string)
MyQuery.SearchType (custom enum SearchTypeEnum)
我还有一个使用此服务的Flex客户端应用程序。但是当Flex调用Search()操作时,我得到关于枚举属性的以下错误:
“无法找到类型的定义 “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客户端 - 甚至是控制台应用程序。我们的想法是看看你是否可以使用任何应用程序来使用该服务。
答案 1 :(得分:0)
我找不到让这个工作的方法。相反,我用字符串常量替换了枚举。不那么优雅,但它有效。