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

本文关键字:清除 字段 Microsoft 客户端 何使用 图形 NET | 更新日期: 2023-09-27 17:55:52

使用 Microsoft Graph .NET 客户端库清除"简单"字符串属性(如组的说明)内容的正确方法是什么?

设置不为空的值适用于以下代码

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();

但是,如果我设置补丁。对"的描述,我得到一个异常

代码:Request_BadRequest消息:为属性指定的值无效 资源"组"的"描述"。

如果我设置补丁的值。对 null 的描述(它已经是 Group() 的新实例)根本没有发生任何事情(我还可以在 Fiddler 中看到,补丁请求的正文中不包含任何描述)。

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

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

清除字符串属性的正确方法是为其分配 null 值。由于最近修复的服务存在问题,您的 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);

目前不支持将 Description 属性更新为 null 或空。作为一种解决方法,我们可以将其设置为空格。下面是一个示例供您参考:

patch.Description = " ";

如果您希望 Microsoft 图形支持删除说明,可以从此处提交反馈。