我正在使用Refit库来访问我的API。这工作得很好,但是在我的网址中使用枚举列表时遇到了一些问题。
[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
我怎样才能实现这个目标?
答案 0 :(得分:1)
我认为默认情况下Refit会在列表中使用ToString来创建查询参数值。您可以创建自己的继承自列表的类,并覆盖ToString方法以在等号的右侧实现您想要的内容。我不太确定为什么你不能使用aliasas属性添加方括号。
答案 1 :(得分:0)
我的问题目前无法通过改装而不做一些解决方法。在改装的GitHub中存在一个问题,其中涵盖了这个主题并且有人正在处理它:https://github.com/paulcbetts/refit/issues/4