如何使用 Microsoft Graph .NET 客户端库清除字段

How to clear a field using using Microsoft Graph .NET Client Library

清除 "simple" 字符串 属性 的内容的正确方法是什么,例如使用 Microsoft Graph .NET Client Library 的组的描述?

设置一个非空的值可以正常使用以下代码

var patch = new Group();
patch.Description = "your description here";
var req = new GroupRequest(graphClient.Groups["<group id>"].Request().RequestUrl, graphClient, new List<Option>());
req.UpdateAsync(patch).Wait();

但是,如果我将 patch.Description 设置为“”,我会得到一个异常

Code: Request_BadRequest Message: Invalid value specified for property 'description' of resource 'Group'.

如果我将 patch.Description 的值设置为 null(对于 Group() 的新实例,它已经是空值)什么也不会发生(我也可以在 Fiddler 中看到,不包含任何描述在补丁请求的正文中)。

所以我的问题是,清除值的正确方法是什么?

目前不支持将Description属性更新为null或空。作为解决方法,我们可以将其设置为空白 space。这里有一个示例供您参考:

patch.Description = " ";

并且如果您希望Microsoft Graph 支持删除描述,您可以提交来自here的反馈。

清除字符串属性的正确方法是为其分配空值。由于最近修复的服务问题,您的 PATCH 请求未按预期工作。默认情况下,客户端库不会发送空值。您可以使用 AdditionalData 属性 包强制它发送:

var groupToUpdate = new Group();
//groupToUpdate.Description = "New description";
var prop = new Dictionary<string, object>();
prop.Add("description", null);
groupToUpdate.AdditionalData = prop; 
await graphClient.Groups[groupId].Request().UpdateAsync(groupToUpdate);