首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.Net-5类库(包)测试注入IOptions

Asp.Net-5类库(包)测试注入IOptions
EN

Stack Overflow用户
提问于 2015-10-14 21:00:20
回答 2查看 402关注 0票数 3

我创建了一个新的proyect:类库(包)来测试我的存储库,因为我需要测试我从asp.net vnext消费的一个asp.net层。

我希望像asp.net vnext一样使用DI,但是我不能从IServiceCollection创建一个实例并注入IOptions。

我试过了

代码语言:javascript
复制
var serviceProvider = new ServiceCollection()
    .AddTransient<ISampleRepository, SampleRepository>()
    .BuildServiceProvider();

SampleRepository的核心是

代码语言:javascript
复制
public SampleRepository(IOptions<Settings> settings)

但是,我有以下错误消息:

结果消息:当试图激活'Repository.Sample.SampleRepository‘时,无法解析'Microsoft.Framework.OptionsModel.IOptions`1Repository.Sample.Settings’类型的服务。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-15 00:12:48

您需要添加OptionsManager服务来解析IOptions<>之类的类型。

.Add(ServiceDescriptor.Singleton(typeof(IOptions<>), typeof(OptionsManager<>)));

票数 1
EN

Stack Overflow用户

发布于 2015-10-15 01:24:16

您仍然需要填充和注册该Repository.Sample.Settings对象:

代码语言:javascript
复制
serviceProvider.Configure<Settings>(Configuration.GetSection("Settings"));

或;

代码语言:javascript
复制
serviceProvider.Configure<Settings>(options =>
{
    options.MyField1 = Configuration["Settings:MyField1"];
    options.MyField2 = Configuration["Settings:MyField2"];
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33135499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档