MS Graph SDK如何添加URL段筛选类型为群组的成员?
实现方案
你需要通过SDK提供的类型转换方法实现群组类型成员筛选,无需手动拼接URL段,具体代码对应SDK版本如下:
Graph .NET SDK v5(当前推荐版本)
使用Cast<T>泛型方法指定目标类型为Group,SDK会自动在请求路径后追加/microsoft.graph.group段:
using Microsoft.Graph; using Microsoft.Graph.Models; // 已初始化的GraphServiceClient实例,需确保具备GroupMember.Read.All等对应权限 var graphClient = new GraphServiceClient(credential, scopes); // 替换为你的目标群组ID var targetGroupId = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; // 筛选传递成员中类型为群组的结果 var groupMembers = await graphClient.Groups[targetGroupId] .TransitiveMembers .Cast<Group>() .GetAsync();
旧版Graph .NET SDK v4
使用OfType<T>泛型方法实现相同效果:
using Microsoft.Graph; var graphClient = new GraphServiceClient(authProvider); var targetGroupId = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; var groupMembers = await graphClient.Groups[targetGroupId] .TransitiveMembers .OfType<Group>() .Request() .GetAsync();
实现原理
SDK的Cast<T>/OfType<T>方法专门用于实现OData类型筛选逻辑,当你指定泛型为Group类型时,会自动构造出和REST API完全一致的请求路径,返回结果仅包含类型为群组的成员,无需手动处理URL拼接。
内容的提问来源于stack exchange,提问作者Heinrich Ulbricht
相关产品推荐
相关产品推荐

