.NET SDK 5.8.0中无法为Teams API设置model=B计费查询参数
问题:Microsoft Graph .NET SDK 无法设置 Teams getAllMessages 的计费模型参数
问题说明
- 已在Azure完成权限与订阅配置,通过Postman或PowerShell调用HTTP请求可正常使用指定计费模型:
https://graph.microsoft.com/v1.0/teams/{{team-id}}/channels/getAllMessages?model=B - 但在.NET SDK中无法直接实现该操作,因为
QueryParameters对象不存在Model属性,以下代码无法编译:
var res = await _graphClient.Teams[teamId].Channels.GetAllMessages.GetAsync((rq) => { rq.QueryParameters.Top = 200; rq.QueryParameters.Model = "B"; // 无此属性,报错 });
- MSDN文档未提及SDK中配置该计费模型的方法,且.NET SDK不支持像PowerShell的
Invoke-GraphRequest那样直接通过URL调用Graph API,已在GitHub提交相关Issue。
临时解决方案
通过手动修改请求URI的方式绕过该限制,代码示例如下:
// 从请求构建器获取基础请求信息 var req = _graphClient.Teams[teamId].Channels.GetAllMessages.ToGetRequestInformation(); // 手动拼接包含计费模型参数的完整URI req.URI = new Uri($"https://graph.microsoft.com/v1.0/teams/{teamId}/channels/getAllMessages()?model=B&%24top=200"); // 配置错误映射(与SDK默认规则一致) var errorMapping = new Dictionary<string, ParsableFactory<IParsable>> { {"4XX", ODataError.CreateFromDiscriminatorValue}, {"5XX", ODataError.CreateFromDiscriminatorValue}, }; // 通过请求适配器发送修改后的请求 var res = await _graphClient.RequestAdapter.SendAsync(req, GetAllMessagesResponse.CreateFromDiscriminatorValue, errorMapping);
期望
希望微软能在后续的.NET SDK版本中正式支持model参数的配置,无需手动拼接URI。
内容的提问来源于stack exchange,提问作者aronhd
相关产品推荐
相关产品推荐

