Cosmos DB的依赖注入不会创建documentClient对象



我在azure函数中有一个服务

public MyService(
IConfigurationProvider configurationProvider,
ISerializationHelperService serializationHelperService,
ICommandListBuilder commandListBuilder,
[CosmosDB(
StaticSettings.Db,
StaticSettings.MyCollection.Collection,
ConnectionStringSetting = StaticSettings.DbConnectionStringSetting)] IDocumentClient documentClient)
{
//my logic here - this does get hit
}

然而,我的服务已实例化,documentClient为空

如何正确设置?我没有收到任何错误

我已经检查过了,连接设置没有问题

public const string Db = "mydbname";
public const string DbConnectionStringSetting = "CosmosDBConnection";
public static class MyCollection
{
public const string Collection = "mycollectionname";
public static Uri CollectionUri => UriFactory.CreateDocumentCollectionUri(Db, Collection);
}

我正在使用一个带有AddServices方法的Startup类来设置DI

我需要在里面放点什么吗?

Paul

我有Azure函数v2项目,我能够注入所有的依赖项。为IDocumentClient添加的下列行

string databaseEndPoint = Environment.GetEnvironmentVariable("DatabaseEndPoint");
string databaseKey = Environment.GetEnvironmentVariable("DatabaseKey");
builder.Services.AddSingleton<IDocumentClient>(new DocumentClient(new System.Uri(databaseEndPoint), databaseKey,
new ConnectionPolicy
{
ConnectionMode = ConnectionMode.Direct,
ConnectionProtocol = Protocol.Tcp,
RequestTimeout = TimeSpan.FromMinutes(5),//Groupasset sync has some timeout issue with large payload
// Customize retry options for Throttled requests
RetryOptions = new RetryOptions()
{
MaxRetryAttemptsOnThrottledRequests = 5,
MaxRetryWaitTimeInSeconds = 60
}
}
));

我的数据库服务

protected readonly IDocumentClient client;
protected BaseDao(IDocumentClient client)
{
this.client = client;
}

希望它能有所帮助!

最新更新