Как использовать атрибут "Описание" от веб-сервиса - PullRequest
1 голос
/ 12 февраля 2009

Атрибут для значений Enum не генерируется на стороне клиента, когда код генерируется с помощью прокси-генератора на стороне клиента. Как я могу сделать их также на стороне клиента?

Например, в сервисе или веб-сервисе:

[DataContract]
punlic enum Periods
{
    [Description("2 months")]
    [EnumMember]
    TwoMonths,
}

(or)

[DataContract]
punlic enum Periods
{
    [XMLEnum(Value = "2 months")]
    [EnumMember]
    TwoMonths,
}

Но на стороне клиента (потребительский веб-сервис) генерируется только:

   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.1433")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://namespace" +
        "")]
    public enum Periods{

        /// <remarks/>
        TwoMonths,
}

Как получить доступ к атрибуту описания из веб-службы?

1 Ответ

1 голос
/ 12 февраля 2009

Вы не можете форсировать это - дескрипторы mex / WDSL содержат только крошечное подмножество информации, связанной с типом.

Если вы управляете клиентом, один из вариантов - объявить enum (или даже все типы) локально и использовать его оттуда. Вы должны иметь возможность использовать переключатель svcutil /reference:<path> для использования типов из существующей сборки (IDE предлагает то же самое). Но обратите внимание, что это частично нарушает правила SOA (т. Е. Вы используете больше информации, чем обещает контракт на обслуживание).

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