在 Microsoft Graph .Net SDK 中重用 GraphServiceClient 的建议是什么?

What is the recommendation to reuse GraphServiceClient in Microsoft Graph .Net SDK?

我意识到 Microsoft Graph .Net SDK 正在使用 HttpClient class。

https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/src/Microsoft.Graph.Core/Requests/HttpProvider.cs

Microsoft 自己的文档建议尽可能重用 HttpClient 个实例,而不是每个请求都启动一个新实例,这可能最终会导致连接池和 SocketException 耗尽。

是否有类似的建议,尽可能重复使用 GraphServiceClient?每个请求实例化一个新的 GraphServiceClient 是否有任何特别的问题?

我不知道有任何建议,但是如果您查看 GraphServiceClient 作为基础 BaseClient 的代码,则不会保留任何状态。只有传入或默认HttpProvider,才有问题。如果您每次都依赖于 GraphServiceClient 生成一个新的 HttpProvider(并因此生成一个新的 HttpClient),那么您会遇到与创建多个 HttpClient 实例相同的问题。

因此,如果您要重新创建客户端,您至少应为其提供缓存 HttpProvider。然后,将整个客户端保存在缓存中也没什么坏处。