Подтвердить что ты не робот

Как я могу использовать перечисление в datacontract WCF

Я хочу иметь перечисление в datacontract веб-службы WCF.

Я пытаюсь использовать

[DataContract]
class myclass
{
    [DataMember]
    public int id {get; set;}

    [DataContract]
    public enum myenum
    { 
        [EnumMember]
        a,
        [EnumMember]
        b
    }
}

Но я не могу получить доступ к перечислению на клиенте wcf. Пожалуйста, дайте мне знать, что я делаю неправильно.

4b9b3361

Ответ 1

Чтобы быть включенным в mex/wsdl, перечисление должно быть использовано где-то на графике, например, должно быть свойство где-то типа myenum. Типы, которые активно не используются на графике, опущены.

Обратите внимание, что вам вообще не нужно вообще аннотировать перечисления - они будут работать нормально. Вам нужны только атрибуты на перечислениях, если вы хотите настроить, как они действуют на провод.

Ответ 2

Как сказал Марк, используйте его. Сам тип данных не является проблемой, пока не потребуется iirc.

Отчасти из этого не требуется иметь Datacontract и EnumMember (применяются специальные правила). Подробнее см. http://msdn.microsoft.com/en-us/library/aa347875.aspx.