0

我正在使用Refit库来访问我的 API。这工作得很好,但我在我的 url 中使用枚举列表时遇到了一些问题。

[Get("/track/")]
Task<IList<Track>> GetAll(int size = 20, int from = 0, [AliasAs("content-types")] IEnumerable<TrackSubType> contentTypes = null, IEnumerable<string> tags = null, string language = null);

IEnumerable contentTypes 当前转换为:

https://website.com/track/?content-type=System.Collections.Generic.List`1[Api.Implementation.Models.TrackSubType]

我想要它的格式:

https://website.com/track/?content-type[]=sometype

我怎样才能做到这一点?

4

2 回答 2

2

我相信 Refit 默认使用列表中的 ToString 来创建查询参数值。您可以创建自己的类继承自 list 并覆盖 ToString 方法以在等号右侧实现您想要的。我不太确定为什么不能使用 aliasas 属性添加方括号。

于 2015-03-11T01:10:20.747 回答
1

如果不采取一些变通方法,我的问题目前无法通过 Refit 解决。Refit 的 GitHub 中有一个问题,其中涵盖了该主题,并且有人正在研究它:https ://github.com/paulcbetts/refit/issues/4

于 2015-03-16T07:53:31.017 回答