- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在一个带有 NancyFX
的项目上实现选项模式(如推荐的 here )/TinyIOC
但它不起作用。
我正在 Startup.cs.ConfigureServices
上注册选项方法,但是当我尝试在我的类上注入(inject)设置时 TinyIoc
抛出:
Nancy.TinyIoc.TinyIoCResolutionException: Unable to resolve type: AppSettings.
我认为这是因为选项模式使用了 Microsoft.Extensions.DependencyInjection
但是Nancy
使用 TinyIoc
默认为 TinyIoc
试图解决 IOptions<AppSettings>
并失败了。
有没有办法使用IOptions<>
与 TinyIoc
?
这是我的代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddOptions();
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
}
public SearchService(IOptions<AppSettings> config)
{
}
错误:
Application startup exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
System.InvalidOperationException: Something went wrong when trying to satisfy one of the dependencies during composition, make sure that you've registered all new dependencies in the container and inspect the innerexception for more details.
Nancy.TinyIoc.TinyIoCResolutionException: Unable to resolve type: Nancy.NancyEngine
Nancy.TinyIoc.TinyIoCResolutionException: Unable to resolve type: Nancy.Routing.DefaultRequestDispatcher
Nancy.TinyIoc.TinyIoCResolutionException: Unable to resolve type: Nancy.Routing.DefaultRouteResolver
Nancy.TinyIoc.TinyIoCResolutionException: Unable to resolve type: Nancy.Routing.RouteCache
Nancy.TinyIoc.TinyIoCResolutionException: Unable to resolve type: MyProject.MyService
Nancy.TinyIoc.TinyIoCResolutionException: Unable to resolve type: 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
非常感谢。
最佳答案
其实我找到了答案。我必须创建一个自定义 Bootstrap 并在 TinyIoc 上注册已解析的依赖项:
启动.cs:
public void Configure(IApplicationBuilder app)
{
app.UseOwin(x => x.UseNancy(new NancyOptions
{
Bootstrapper = new CustomBootstrapper(app)
}));
}
自定义 Bootstrap .cs:
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
base.ConfigureApplicationContainer(container);
container.Register<IOptions<AppSettings>>(_app.ApplicationServices.GetService<IOptions<AppSettings>>());
}
关于c# - IOptions 不适用于 TinyIOC/NancyFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34991016/
Autofac 允许使用 .AsImplementedInterfaces() 或链式 .As<>() 调用与 .SingleInstance() 一起非常轻松地将多个接口(interface)解析为
我已经使用 Nancy 一段时间了,我想我已经把自己困在了一个盒子里,无法跳出它来思考我在使用 Nancy 时的错误。我确实看到的选项我不太喜欢。如果我错过了一些可以帮助我的功能,或者我没有很好地列出
我有一个 Nancy API,并创建了一个继承自 DefaultNancyBootstrapper 的自定义 Bootstraper。 我还有具体类型ConcreteFoo,我想在请求范围内绑定(bi
我正在研究用于 ASP.NET MVC 应用程序的 TinyIOC。 我想做的是使用工厂方法根据请求将一些接口(interface)注册为单例。 var container = TinyIoC.Tin
我正在尝试在一个带有 NancyFX 的项目上实现选项模式(如推荐的 here )/TinyIOC但它不起作用。 我正在 Startup.cs.ConfigureServices 上注册选项方法,但是
假设我有一个通用接口(interface)和一个通用实现。我如何注册所有用途? 具体来说,我有以下内容(为简单起见减少了): public interface IRepository where T
我正在尝试让 TinyIoC 在 Xamarin.iOS 上运行,但我的运气并不好。我的项目链接器设置为“仅链接 SDK 程序集”。 我真的在做这么简单的事情: public interface IP
我刚刚从 Ninject 更改为 TinyIoC 以进行依赖项注入(inject),但我在构造函数注入(inject)方面遇到了麻烦。 我已经设法将它简化为这个片段: public interface
我刚刚开始学习 IoC 和依赖注入(inject)。我正计划做一个 MonoTouch 项目并想使用 TinyIoC 但我想先测试一下。我正在创建一个虚拟信用卡处理控制台应用程序,但由于我有多个接口(
我有一个接口(interface)IRofl,它有一个名为DefaultRofl 的实现,具有以下构造函数签名: public DefaultRofl(ICanHasCheezburger cheez
我正在构建一个小型 Nancy Web 项目。 在我的一个类(不是 nancy 模块)的方法中,我想基本上做: var myThing = TinyIoC.TinyIoCContainer.Curre
我正在尝试使用 TinyIoC 在 MonoTouch 中使用依赖注入(inject),但是我似乎无法弄清楚我应该在哪里进行注册,以及在我的 Controller 中注入(inject)我的服务的构建
设置:我有一个几乎开箱即用的 Nancy + TinyIoC 设置,运行一个运行良好的网络服务。它取决于各种 (AsSingleton) 服务类。然而,这些并没有作为单例注入(inject),每次都会
这让我发疯......我有一个网络 API 项目。我的行为很奇怪。我正在调试器中运行它并使用 fiddler 调用方法。发生的情况是,当我在 build 后第一次在 debug 中运行 API 时,该
我是南希的菜鸟。我一直将它用作生成 REST API 的框架。我熟悉 Json.NET,所以我一直在玩 Nancy.Serialization.JsonNet 包。 我的目标:自定义 JsonNetS
所以我使用 Nancy + TinyIoC 来运行一个小型网络服务。这行得通。现在我需要创建一个 Quartz 作业,它需要一些相同的依赖项,理想情况下我想使用 Nancy 的 TinyIoC 来注入
我收到 TinyIOC 无法解析类型异常。我使用 Xamarin studio for ipad 开发了我的应用程序。在模拟器中它工作正常。但是在部署 ipad 时出现以下错误。 TinyIoC.Ti
所以我使用 Nancy + TinyIoC 来运行一个小型网络服务。这行得通。现在我需要创建一个 Quartz 作业,它需要一些相同的依赖项,理想情况下我想使用 Nancy 的 TinyIoC 来注入
我收到 TinyIOC 无法解析类型异常。我使用 Xamarin studio for ipad 开发了我的应用程序。在模拟器中它工作正常。但是在部署 ipad 时出现以下错误。 TinyIoC.Ti
我是一名优秀的程序员,十分优秀!