代码之家  ›  专栏  ›  技术社区  ›  Keith

flex&wcf-枚举错误

  •  0
  • Keith  · 技术社区  · 15 年前

    我有一个wcf服务操作,它接受自定义类型myquery的数据协定参数-- function Search(q as MyQuery) . MyQuery对象包含2个属性:

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

    我还有一个使用此服务的灵活客户端应用程序。但是,当flex调用search()操作时,我得到关于枚举属性的以下错误:

    “找不到类型的定义 ’ http://mydomain/2009/04/SearchTypeEnum::SearchTypeEnum

    当flex向服务构建请求时,会从flex中抛出错误。

    所以我的问题是……有没有办法在flex中解决这个问题?或者我唯一的选择是重新设计没有枚举的服务?

    这是在服务层定义枚举数据协定的方式:

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

    据我所知,这是枚举数据协定的正确定义。我还尝试在服务和myquery类上使用service knowntype和knowntype属性,但没有用。

    2 回复  |  直到 9 年前
        1
  •  0
  •   John Saunders    15 年前

    我建议您尝试使用一个普通的.NET客户端-甚至可能是一个控制台应用程序。我们的想法是看看你能不能 任何 用于服务的应用程序。

        2
  •  0
  •   Keith    15 年前

    我找不到一个办法让这个工作。相反,我用字符串常量替换了枚举。不是很优雅,但很管用。