You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Microsoft Graph C# SDK中从PlannerAssignments获取PlannerAssignment列表

获取Planner任务分配的详细信息

当你拿到PlannerTask对象后,其Assignments.AdditionalData中存储的是键为用户ID、值为未类型化对象的集合,要提取PlannerAssignment列表,只需将这些未类型化对象反序列化为强类型即可。

方法一:使用System.Text.Json(.NET Core/.NET 5+推荐)

using System.Text.Json;
using Microsoft.Graph.Models;

// 假设已获取目标PlannerTask实例task
var assignmentList = new List<PlannerAssignment>();

foreach (var entry in task.Assignments.AdditionalData)
{
    // 将UntypedObject序列化为JSON字符串
    var jsonString = JsonSerializer.Serialize(entry.Value);
    // 反序列化为PlannerAssignment对象
    var assignment = JsonSerializer.Deserialize<PlannerAssignment>(jsonString);
    
    if (assignment != null)
    {
        assignmentList.Add(assignment);
        // 读取分配详情,例如:
        string assignedUserId = assignment.AssignedBy?.UserId;
        DateTimeOffset? assignedTime = assignment.AssignedDateTime;
    }
}

方法二:使用Newtonsoft.Json(适用于旧版.NET框架)

using Newtonsoft.Json;
using Microsoft.Graph.Models;

var assignmentList = new List<PlannerAssignment>();

foreach (var entry in task.Assignments.AdditionalData)
{
    var jsonString = JsonConvert.SerializeObject(entry.Value);
    var assignment = JsonConvert.DeserializeObject<PlannerAssignment>(jsonString);
    
    if (assignment != null)
    {
        assignmentList.Add(assignment);
    }
}

原理说明:Planner任务分配的结构以用户ID为键存储在AdditionalData中,SDK未直接做强类型映射,通过序列化再反序列化的方式,可将未类型化对象转换为PlannerAssignment,从而读取assignedBy、assignedDateTime等详细属性。

内容的提问来源于stack exchange,提问作者23W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 21:58:16