看起来他们的 API 将传递给 Search() 的第二个参数的对象转换为查询字符串参数。所以在你的例子中
client.Search(ObjCode.PROJECT, new {groupID = userGroupID});
创建以下网址(123 代表您的组 ID)。
GET /attask/api/project/search?groupID=123
因此,要将 $$LIMIT 添加到 url,请将 $$LIMIT 添加到对象。不幸的是,C# 不允许在名称中使用 $。所以我的建议是稍微修改他们的 C# API。首先将您对 Search() 的调用更改为此
client.Search(ObjCode.PROJECT, new {groupID = userGroupID, __Limit = 200 });
然后,在 AtTaskRestClient.cs 中,将文件末尾的 parameterObjectToStringArray() 更改为以下内容。
private string[] parameterObjectToStringArray(object parameters, params string[] toAdd) {
var properties = parameters.GetType().GetProperties();
List<string> p = new List<string>(properties.Length);
p.AddRange(toAdd);
foreach(var prop in properties) {
string propName = prop.Name;
if (propName.StartsWith("__"))
{
propName = "$$" + propName.Substring(2);
}
string line = string.Format("{0}={1}", propName, prop.GetValue(parameters, null));
p.Add(line);
}
return p.ToArray();
}
此更改还将允许您使用以 $$ 开头的其他参数,例如 $$FIRST。