如何使用Microsoft Graph .NET SDK 5.0改写SharePoint小文件上传代码
适配Microsoft Graph .NET SDK 5.0的小文件上传代码
针对你遇到的两个问题(获取DriveItem返回值、传递conflictBehavior参数),可以通过以下方式修改代码:
- 传递conflictBehavior参数:SDK 5.x不再使用
QueryOption列表,而是通过RequestConfiguration类配置查询参数 - 获取DriveItem返回值:使用
PutAsync<T>泛型重载,指定返回类型为DriveItem
完整代码如下:
private async static Task<DriveItem> UploadSmallFile(string driveId, string filePath, MemoryStream fileStream) { // 配置请求参数,设置冲突行为为replace var requestConfig = new RequestConfiguration { QueryParameters = new QueryParameters { AdditionalQueryParameters = new Dictionary<string, object> { { "@microsoft.graph.conflictBehavior", "replace" } } } }; // 调用泛型重载PutAsync<DriveItem>获取返回的文件对象 DriveItem file = await GraphClient .Drives[driveId] .Root .ItemWithPath(filePath) .Content .PutAsync<DriveItem>(fileStream, requestConfig); return file; }
补充说明
RequestConfiguration是SDK 5.x统一的请求配置类,除了查询参数,还可以配置请求头、中间件等- 如果偏好使用请求头传递冲突行为,也可以在
RequestConfiguration的Headers中添加Prefer: overwrite(对应replace行为),效果与查询参数一致
内容的提问来源于stack exchange,提问作者Ásgeir Gunnar Stefánsson
相关产品推荐
相关产品推荐

