【发布时间】:2015-07-02 12:29:13
【问题描述】:
我使用以下OperationContract创建了一个 WCF 服务
[WebGet(UriTemplate = "/foo?id={Id}&flags={flags}&filter={filter}", ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped)]
[OperationContract]
DataTable GetFoo(string id, FlaggedEnum flags, SomeClass filter = null);
FlaggedEnum 已被标记为 DataContract 和成员
[DataContract]
[Flags]
public enum FlaggedEnum
{
[EnumMember]
Book = 1,
[EnumMember]
Product = 2,
[EnumMember]
TenorGroup = 4,
[EnumMember]
Tenor = 8,
[EnumMember]
Trade = 16
}
我已阅读Can I pass non-string to WCF RESTful service using UriTemplate?,但不知何故,在将枚举移动到查询部分后它仍然无法正常工作。我错过了什么?
错误信息: 合约“IFooProvider”中的 GetFoo 操作有一个名为“flags”的路径变量,它没有“字符串”类型。 UriTemplate 路径段的变量必须具有“字符串”类型
对于第三个参数(传递一个类),是否只能通过使用自定义 QueryStringConverter 来实现?
【问题讨论】:
标签: c# web-services wcf rest enums