使用MS Graph .NET SDK无法展开日历事件SingleValueExtendedProperties
解决MS Graph .NET SDK读取日历事件特定SingleValueExtendedProperty的问题
你的代码思路是对的,但大概率是细节没踩对,试试下面几个排查方向:
核对属性ID的精准性
把idTest里的GUID和属性名称和你在Teams Tab/Graph Explorer里用的完全对齐,大小写、空格、符号一个都不能错——比如属性名是customEventTag就别写成Customeventtag,GUID拼写错一位都不行。处理URL编码坑
直接拼接字符串可能会触发URL编码问题,尤其是属性名带特殊字符的时候。试试手动编码ID后再传入:string encodedIdTest = Uri.EscapeDataString(idTest); Event result = await _graphServiceClient.Users[email].Events[eventId] .Request() .Expand($"singleValueExtendedProperties($filter=id eq '{encodedIdTest}')") .GetAsync();确认权限和身份验证
别忽略权限配置:SDK调用必须拿到带Calendars.Read(或更高)权限的令牌,哪怕其他环境能用,也要检查SDK的身份验证流程是不是正确申请了对应权限。换个思路:本地过滤
如果过滤展开的方式始终不行,先把所有扩展属性拉回来再本地筛选:Event result = await _graphServiceClient.Users[email].Events[eventId] .Request() .Expand("singleValueExtendedProperties") .GetAsync(); var targetProperty = result.SingleValueExtendedProperties? .FirstOrDefault(p => p.Id == idTest);升级SDK版本
老版本的Graph SDK对扩展属性的过滤支持可能有bug,直接更到最新稳定版(比如v5.x),确保和官方API的逻辑同步。
内容的提问来源于stack exchange,提问作者Simone N
相关产品推荐
相关产品推荐

