如何从webservice中获取属性“描述”

时间:2009-02-12 08:00:04

标签: .net wcf

在客户端使用代理生成器生成代码时,客户端没有生成Enum值的属性。我怎样才能在客户端制作它们?

例如,在服务或网络服务中:

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

(or)

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

但是在客户端(消费者使用Web服务),它只生成:

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

        /// <remarks/>
        TwoMonths,
}

如何从Web服务访问说明属性?

1 个答案:

答案 0 :(得分:1)

你不能强制这样做 - mex / WDSL描述符只包含与类型相关的一小部分信息。

如果您控制客户端,一个选项是在本地声明枚举(甚至所有类型),并从那里开始使用。您应该能够使用svcutil /reference:<path>开关来使用现有程序集中的类型(IDE提供相同的类型)。但请注意,这部分违反了SOA规则(即您使用的信息多于服务合同所承诺的信息)。