You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至Microsoft.Graph API 5.*后Event类Recurrence属性反序列化失败

解决Graph API 5.x中Microsoft.Kiota.Abstractions.Date反序列化失败问题

问题根源

Graph SDK 5.x基于Kiota框架,Microsoft.Kiota.Abstractions.Date是Kiota定义的专用日期类型,System.Text.Json默认不支持该类型的转换逻辑,所以当JSON里出现startDate这种纯日期字符串时,就会抛出转换错误。

解决方案:使用Kiota内置的Json转换器

不用自己写转换器,Kiota官方已经提供了配套的序列化组件,包含所有自定义类型的转换器:

  1. 确认依赖包存在
    你的项目需要引用Microsoft.Kiota.Serialization.Json包(Graph SDK 5.x一般会自动依赖这个包,如果缺失可以手动安装)

  2. 更新反序列化代码
    把Kiota提供的默认转换器添加到JsonSerializerOptions里就行:

    var options = new JsonSerializerOptions() { PropertyNameCaseInsensitive = true };
    // 保留原有的枚举转换器
    options.Converters.Add(new JsonStringEnumConverter());
    // 添加Kiota自定义类型的转换器集合
    options.Converters.AddRange(JsonSerializationWriterFactory.DefaultConverters);
    
    var @event = System.Text.Json.JsonSerializer.Deserialize<Event>(text, options);
    

补充说明

JsonSerializationWriterFactory.DefaultConverters里包含了Date、Time、Duration等所有Kiota自定义类型的转换器,一次性添加就能解决所有同类问题,包括你遇到的recurrence.range.startDate转换失败的情况。

内容的提问来源于stack exchange,提问作者Aidas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 13:32:40