我有ASP.Net Core 2.1
个应用程序。
我需要注册并注入AWS
的少量依赖项>
当前,实现如下所示
public abstract class BaseService { protected readonly IConfiguration _configuration; protected readonly RegionEndpoint _region; protected readonly IAmazonDynamoDB _dynamoClient; protected IPocoDynamo _pocoDynamo; public BaseService(IConfiguration configuration) { _configuration = configuration; var awsSettings = configuration.GetSection("AWS"); _dynamoClient = SetDynamoClient(awsSettings); _pocoDynamo = SetPocoDynamoClient(); } protected IAmazonDynamoDB SetDynamoClient(IConfigurationSection configuration) { AWSCredentials credentials = new BasicAWSCredentials(configuration["AccessKey"], configuration["AccessSecret"]); return new AmazonDynamoDBClient(credentials, _region); } protected IPocoDynamo SetPocoDynamoClient() { return new PocoDynamo(_dynamoClient); } }
由于进行单元测试,因此无法模拟AWS服务。
我想在Startup.cs
的ConfigureServices()
中注册所有这些依赖项>
这是我正在尝试的
public void ConfigureServices(IServiceCollection services) { AWSCredentials credentials = new BasicAWSCredentials(configuration["AccessKey"], configuration["AccessSecret"]); services.AddTransient(IAmazonDynamoDB, (a) => { return new AmazonDynamoDBClient(credentials, RegionEndpoint.GetBySystemName("")) }); //here I need to pass the IAmazonDynamoDB to below IOC //services.AddSingleton<IPocoDynamo,new PocoDynamo()> (); return services; }
但是这会引发错误
错误CS0119'IAmazonDynamoDB'是一种类型,在给定的上下文中无效
如何根据需要在此处配置依赖项?
谢谢!
我有ASP.Net Core 2.1应用程序。我需要注册并注入一些AWS依赖项目前,该实现如下所示,是公共抽象类BaseService {protected ...
使用工厂代表呼叫注册的服务
public void ConfigureServices(IServiceCollection services) {
AWSCredentials credentials = new BasicAWSCredentials(configuration["AccessKey"], configuration["AccessSecret"]);
services.AddTransient<IAmazonDynamoDB>(sp =>
new AmazonDynamoDBClient(credentials, RegionEndpoint.GetBySystemName(""))
);
//here pass the IAmazonDynamoDB to below IOC
services.AddSingleton<IPocoDynamo>(sp =>
new PocoDynamo(sp.GetRequieredService<IAmazonDynamoDB>())
);
}