在Microsoft Graph SDK(DotNet)的版本4中,您可以使用流畅的方法.WithShouldRetry.WithMaxRetry.请参见示例中的此blogpost.

我现在正在将我的应用程序升级到SDK的v5,因为版本是removal of .Request(),所以不可能再设置重试.

如何在SDK v5中实现重试?

Update: 参见新的blogpost for v5 of the SDK.

推荐答案

重试处理程序现在是Microsoft.Kiota.Http.HttpClientLibrary.Middleware.Options中的IRequestOption,因此您可以执行如下操作

    using Microsoft.Kiota.Http.HttpClientLibrary.Middleware.Options;

    private static Event CreateEvent(GraphServiceClient graphServiceClient, string emailAddress)
    {
        var requestBody = new Event
        {
            Subject = "Let's go for lunch",
            Body = new ItemBody
            {
                ContentType = BodyType.Html,
                Content = "Does mid month work for you?",
            },
            Start = new DateTimeTimeZone
            {
                DateTime = "2023-03-15T12:00:00",
                TimeZone = "Pacific Standard Time",
            },
            End = new DateTimeTimeZone
            {
                DateTime = "2023-03-15T14:00:00",
                TimeZone = "Pacific Standard Time",
            },
            Location = new Location
            {
                DisplayName = "Harry's Bar",
            },
            TransactionId = "7E163156-7762-4BEB-A1C6-729EA81755A7",
        };
        RetryHandlerOption retryHandlerOption = new RetryHandlerOption()
        {
            MaxRetry = 5
        };           
        var requestOptions = new List<IRequestOption>
        {                
            retryHandlerOption,
        };
        return graphServiceClient.Users[emailAddress].Calendar.Events.PostAsync(requestBody, rc => rc.Options = requestOptions).GetAwaiter().GetResult();
    }

Csharp相关问答推荐

Blazor:计算值或保留为默认值

更改对象的旋转方向

如何使用ConcurentDictionary属性上的属性将自定义System.Text.Json JsonConverter应用于该属性的值?

为什么SignalR在每个Blazor服务器应用程序启动时最多启动8个服务器?

C#阻塞调用或await calling inside calling方法

单行上的ReSharper数据标注

C#普罗米修斯指标

将类移动到新命名空间后更新RavenDB Raven-Clr-Type

TagHelpers在新区域不起作用

HelperText属性不支持复杂内容(混合C#和标记)

C#动态设置ServerReport报表参数

具有类型识别的泛型方法

使用C#和.NET 7.0无法访问Cookie中的数据

为什么我的伺服电机不动,下面的代码?

未在Windows上运行的Maui项目

使用Blazor WebAssembly提高初始页面加载时间的性能

在.NET Maui中,Flyoutindow/Hamburger菜单可以在shell 之外实现吗?

实体框架允许您具有筛选的属性吗?

LINQ在GROUP BY和JOIN之后获取子列表

XmlSerializer在遇到XML属性(命名空间)时崩溃