通过WCF Rest暴露枚举.只显示一个属性
本文关键字:一个 属性 显示 Rest WCF 暴露 枚举 通过 | 更新日期: 2023-09-27 18:09:11
我试图通过我的WCF REST webservice暴露枚举。只显示一个属性。详情见下文。有人能告诉我为什么会这样吗?
类 [DataContract]
public enum OrderAttributes
{
[EnumMember]
AppointmentRef,
[EnumMember]
AddressRef,
[EnumMember]
ContactEmail,
[EnumMember]
ContactFirstName
}
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "OrderAttributes")]
[OperationContract(Name = "OrderAttributes")]
DataLayer.OrderAttributes OrderAttributes();
[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
DataLayer.OrderAttributes IService.OrderAttributes() {
return new OrderAttributes();
}
get的结果
<OrderAttributesResponse>
<OrderAttributesResult>AppointmentRef</OrderAttributesResult>
</OrderAttributesResponse>
代码正在做您告诉它要做的事情,它返回一个OrderAttributes类型的单个值。在本例中,第一个enum为默认enum值。如果您需要OrderAttributes的列表,您必须手动构建并返回该列表。本文中的代码展示了如何创建该列表。
您实际上不需要将枚举标记为DataContract
。代码生成器足够聪明,可以在代理代码中生成具有相应值的枚举。
因为您指定它是一个DataContract
,它实际上创建了一个名为OrderAttributes
的class
而不是您的enum。