Как я могу использовать перечисление в datacontract WCF
Я хочу иметь перечисление в datacontract веб-службы WCF.
Я пытаюсь использовать
[DataContract]
class myclass
{
[DataMember]
public int id {get; set;}
[DataContract]
public enum myenum
{
[EnumMember]
a,
[EnumMember]
b
}
}
Но я не могу получить доступ к перечислению на клиенте wcf. Пожалуйста, дайте мне знать, что я делаю неправильно.
Ответы
Ответ 1
Чтобы быть включенным в mex/wsdl, перечисление должно быть использовано где-то на графике, например, должно быть свойство где-то типа myenum
. Типы, которые активно не используются на графике, опущены.
Обратите внимание, что вам вообще не нужно вообще аннотировать перечисления - они будут работать нормально. Вам нужны только атрибуты на перечислениях, если вы хотите настроить, как они действуют на провод.
Ответ 2
Как сказал Марк, используйте его. Сам тип данных не является проблемой, пока не потребуется iirc.
Отчасти из этого не требуется иметь Datacontract и EnumMember (применяются специальные правила). Подробнее см. http://msdn.microsoft.com/en-us/library/aa347875.aspx.