复制的DriveItem-copy C#代码片段报错:DriveRequestBuilder无Items定义,如何修复?
解决‘DriveRequestBuilder’不包含‘Items’定义的问题
问题根源
微软Graph SDK v4及后续版本的API结构有调整,官方文档的代码片段未及时更新,导致直接复制的代码和当前SDK版本不兼容,哪怕降级到v4.54也因为写法不对报错。
分版本修正代码
适配Graph SDK v5.x
v5.x里DriveRequestBuilder下的资源名称从Items改成了DriveItems,修正后的复制代码示例:
var requestBody = new CopyDriveItemActionParameter { ParentReference = new ItemReference { Id = "目标文件夹ID" }, Name = "复制后的文件名" }; var result = await graphClient.Drives["你的DriveID"].DriveItems["源文件ID"].Copy.PostAsync(requestBody);
适配Graph SDK v4.x
v4.x里确实是Items,但要确保命名空间和客户端实例没问题,修正后的示例:
var copyRequestBody = new CopyDriveItemActionParameter { ParentReference = new ItemReference { Id = "目标文件夹ID" }, Name = "复制后的文件名" }; var result = await graphClient.Drives["你的DriveID"].Items["源文件ID"].Copy.PostAsync(copyRequestBody);
必做检查项
- 确认已引入正确的命名空间:
- v5.x:
using Microsoft.Graph;+using Microsoft.Graph.Models; - v4.x:
using Microsoft.Graph;
- v5.x:
- 检查
graphClient实例是否完成了身份验证初始化,确保能正常调用Graph API - 若仍有问题,清理NuGet缓存后重新安装对应版本包:
dotnet nuget locals all --clear dotnet add package Microsoft.Graph --version 4.54.0
内容的提问来源于stack exchange,提问作者Kyle Omblero
相关产品推荐
相关产品推荐

