Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS Graph SDK C#-获取计划中的所有任务_C#_Microsoft Graph Api - Fatal编程技术网

MS Graph SDK C#-获取计划中的所有任务

MS Graph SDK C#-获取计划中的所有任务,c#,microsoft-graph-api,C#,Microsoft Graph Api,我试图从某个计划中获得所有任务(标题或任何内容) 目前,我的代码只返回我所参与的计划或分配给我的任务,但我还想检索{lan内未分配的任务 var plans = await graphServiceClient .Me .Planner .Plans .Request() .GetAsync(); foreach (var plan in plans) { //works Console.WriteLine(plan.Title);

我试图从某个计划中获得所有任务(标题或任何内容)

目前,我的代码只返回我所参与的计划或分配给我的任务,但我还想检索{lan内未分配的任务

var plans = await graphServiceClient
    .Me
    .Planner
    .Plans
    .Request()
    .GetAsync();

foreach (var plan in plans)
{
    //works
    Console.WriteLine(plan.Title);
    Console.WriteLine(plan.Id);

    //does not work
    Console.WriteLine(plan.Tasks);
    Console.WriteLine(plan.Tasks.Count);
}

var tasks = await graphServiceClient
    .Me
    .Planner
    .Tasks
    .Request()
    .GetAsync();

foreach (var task in tasks)
{
    Console.WriteLine(task.Title);
}
在代码中,
//不起作用的部分中,
是两行不起作用的代码(即使一次使用1行)


无法找到获取未分配任务的方法。尝试删除
.Me
部分,但似乎没有任何效果。

SDK不会自动填充
计划.tasks
,这就是它们显示为空的原因。您需要单独请求它们

为此,您首先需要注意获取计划列表(
/me/planner/plans/
)、单个计划(
/planner/plans/{id}
)和单个计划中的任务(
/planner/plans/{id}/tasks
)之间的区别

因此,首先需要获取计划列表,然后在迭代计划时检索任务:

var plans = await graphServiceClient
    .Me
    .Planner
    .Plans
    .Request()
    .GetAsync();

foreach (var plan in plans)
{
    Console.WriteLine($"{plan.Title} ({plan.Id})");

    var tasks = await graphServiceClient
        .Planner
        .Plans[plan.Id]
        .Tasks
        .Request()
        .GetAsync();

    foreach (var task in tasks)
    {
        Console.WriteLine($"{task.Title} ({task.Id})");
    }
}

尝试向初始请求添加Expand
var plans=wait graphServiceClient.Me.Planner.plans.request().Expand(“Tasks”).GetAsync();
现在它甚至不返回计划的标题,但感谢您的建议:)