Redmine.Net.Api获取组内用户为空问题求助
解决Redmine.Net.Api获取组内用户为Null的问题
我之前也踩过这个坑!Redmine.Net.Api默认不会自动加载关联资源(比如组里的用户、用户所属的组),这就是你拿到的Group对象里Users始终为null的核心原因。
解决方案1:获取Group时显式指定加载关联用户
调用GetObjects<Group>的时候,需要通过NameValueCollection传入include参数,告诉Redmine API要一并返回组内的用户数据:
RedmineManager manager = new RedmineManager(Config.host, Config.apiKey); var groups = manager.GetObjects<Group>(new NameValueCollection { { "include", "users" } });
这样返回的每个Group对象里,Users属性就会被正确填充了。
解决方案2:通过User反向获取所属组(如果需要)
如果你的场景是先获取用户再查看他们所属的组,同样要在获取User时指定include=groups:
RedmineManager manager = new RedmineManager(Config.host, Config.apiKey); var redmineUsers = manager.GetObjects<User>(new NameValueCollection { { "include", "groups" } });
之后每个User的Groups属性就能拿到对应的组信息了。
补充说明
这个行为其实是Redmine REST API的设计规则——默认只返回主资源,关联资源需要通过include参数主动请求,Redmine.Net.Api只是忠实地封装了这个逻辑,所以必须显式声明要加载的关联实体才行。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

