Azure CosmosDB - 如何创建 DocumentClient(它是内部的)?

Azure CosmosDB - how to create DocumentClient (it's internal)?

我可能在这里遗漏了一些明显的东西,但是...我正在尝试使用 DocumentClient.UpsertDocumentAsync(...) 更新插入到 CosmosDB 中。问题是,我无法创建 DocumentClient,因为它被标记为“内部 class”。到目前为止,我看到的所有示例都指出这是实现此目的的方法。

例如:

var docClient = new Microsoft.Azure.Cosmos.DocumentClient(
                new Uri("..."), 
                "...",
                null,
                null);

这会产生 IDE 错误“无法在此处访问内部 class 'DocumentClient'”,因为它是一个内部 class。这可能随着最新版本而改变了吗?

这是反编译后的签名:

    namespace Microsoft.Azure.Cosmos
    {
        ...
        internal partial class DocumentClient : IDisposable, 
            IAuthorizationTokenProvider, 
            ICosmosAuthorizationTokenProvider, 
            IDocumentClient, 
            IDocumentClientInternal
        ...

我正在使用 Microsoft.Azure.Cosmos

的最新 Nuget 包(v.3.27.0 发布于 5/6/2022)

您不需要访问 DocumentClient,那是一个内部 class。它不被任何 public 表面操作使用,您不需要它与 V3 SDK 交互。

请看官方例子:https://docs.microsoft.com/azure/cosmos-db/sql/sql-api-dotnet-v3sdk-samples#item-examples

如果您要从 V2 SDK 迁移到 V3,请参阅迁移指南:https://docs.microsoft.com/azure/cosmos-db/sql/migrate-dotnet-v3