在客户端使用代理生成器生成代码时,客户端没有生成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服务访问说明属性?
答案 0 :(得分:1)
你不能强制这样做 - mex / WDSL描述符只包含与类型相关的一小部分信息。
如果您控制客户端,一个选项是在本地声明枚举(甚至所有类型),并从那里开始使用。您应该能够使用svcutil /reference:<path>
开关来使用现有程序集中的类型(IDE提供相同的类型)。但请注意,这部分违反了SOA规则(即您使用的信息多于服务合同所承诺的信息)。