我创建了一个新的proyect:类库(包)来测试我的存储库,因为我需要测试我从asp.net vnext消费的一个asp.net层。
我希望像asp.net vnext一样使用DI,但是我不能从IServiceCollection创建一个实例并注入IOptions。
我试过了
var serviceProvider = new ServiceCollection()
.AddTransient<ISampleRepository, SampleRepository>()
.BuildServiceProvider();SampleRepository的核心是
public SampleRepository(IOptions<Settings> settings)但是,我有以下错误消息:
结果消息:当试图激活'Repository.Sample.SampleRepository‘时,无法解析'Microsoft.Framework.OptionsModel.IOptions`1Repository.Sample.Settings’类型的服务。
发布于 2015-10-15 00:12:48
您需要添加OptionsManager服务来解析IOptions<>之类的类型。
.Add(ServiceDescriptor.Singleton(typeof(IOptions<>), typeof(OptionsManager<>)));
发布于 2015-10-15 01:24:16
您仍然需要填充和注册该Repository.Sample.Settings对象:
serviceProvider.Configure<Settings>(Configuration.GetSection("Settings"));或;
serviceProvider.Configure<Settings>(options =>
{
options.MyField1 = Configuration["Settings:MyField1"];
options.MyField2 = Configuration["Settings:MyField2"];
});https://stackoverflow.com/questions/33135499
复制相似问题