Flex & WCF - ошибка Enum - PullRequest
       6

Flex & WCF - ошибка Enum

0 голосов
/ 10 апреля 2009

У меня есть операция службы 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? Или моя единственная альтернатива - перепроектировать сервис без перечислений?

Вот как контракт enum data определяется на уровне сервиса:

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

Насколько я знаю, это правильное определение контракта на перечисление данных. Я также попытался использовать атрибуты ServiceKnownType и KnownType в службе и в классе MyQuery, но безрезультатно.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2009

Я не мог найти способ заставить это работать. Вместо этого я заменил перечисления строковыми константами. Не так элегантно, но работает.

0 голосов
/ 10 апреля 2009

Я бы порекомендовал вам попробовать это с тривиальным клиентом .NET - возможно, даже с консольным приложением. Идея заключалась бы в том, чтобы выяснить, можно ли заставить любое приложение работать с сервисом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...