我正在尝试在带有 / 的项目上实施选项模式(如此处推荐),NancyFX
但TinyIOC
它不起作用。
我正在Startup.cs.ConfigureServices
方法上注册选项,但是当我尝试在我的类中注入设置时TinyIoc
会抛出:
Nancy.TinyIoc.TinyIoCResolutionException:无法解析类型:AppSettings。
我认为这是因为选项模式使用Microsoft.Extensions.DependencyInjection
但默认Nancy
使用TinyIoc
,因此TinyIoc
尝试解决IOptions<AppSettings>
并失败。
有没有办法使用IOptions<>
with TinyIoc
?
这是我的代码:
启动.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddOptions();
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
}
我的服务.cs
public SearchService(IOptions<AppSettings> config)
{
}
错误:
应用程序启动异常:System.Reflection.TargetInvocationException:调用目标已引发异常。
System.InvalidOperationException:在组合过程中尝试满足其中一个依赖项时出现问题,请确保您已在容器中注册了所有新依赖项并检查内部异常以获取更多详细信息。
Nancy.TinyIoc.TinyIoCResolutionException:无法解析类型:Nancy.NancyEngine
Nancy.TinyIoc.TinyIoCResolutionException:无法解析类型:Nancy.Routing.DefaultRequestDispatcher
Nancy.TinyIoc.TinyIoCResolutionException:无法解析类型:Nancy.Routing.DefaultRouteResolver
Nancy.TinyIoc.TinyIoCResolutionException:无法解析类型:Nancy.Routing.RouteCache
Nancy.TinyIoc.TinyIoCResolutionException:无法解析类型:MyProject.MyService
Nancy.TinyIoc.TinyIoCResolutionException:无法解析类型:Microsoft.Extensions.OptionsModel.IOptions`1[[MyProject.AppSettings, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]
一些额外的信息:
"dependencies": {
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.Owin": "1.0.0-rc1-final",
"Nancy": "1.4.3",
"Microsoft.Framework.ConfigurationModel": "1.0.0-beta4",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final"
},
DNX 运行时版本:
1.0.0-rc1-update1 mono
非常感谢。