c#-Ninject无法通过Application_Start中的DependencyResolver解析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-Ninject无法通过Application_Start中的DependencyResolver解析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1446字,纯文字阅读大概需要3分钟。
内容图文
![c#-Ninject无法通过Application_Start中的DependencyResolver解析](/upload/InfoBanner/zyjiaocheng/680/f854583c412d4e72808da9e24115137e.jpg)
我一直在努力解决整个上午的问题,但似乎该征询意见了.
我有一个MVC / WebApi / SignalR应用程序.我有一项服务,希望与Web应用程序一起开始.我希望注入这项服务.所以这就是我想要做的:
public static class NinjectWebCommon
{
...
private static void RegisterServices(IKernel kernel)
{
GlobalHost.DependencyResolver = new Microsoft.AspNet.SignalR.Ninject.NinjectDependencyResolver(kernel);
kernel.Bind<PricingService>().ToSelf().InSingletonScope();
}
}
public class Application : HttpApplication
{
protected void Application_Start()
{
...
PricingService pricingService = DependencyResolver.Current.GetService<PricingService>();
}
}
我的问题是定价服务变量为null.
根据this post,此模式应起作用,但不起作用.可能是SignalR依赖解析器的影响,但我不确定.
同时,当我在WebApi控制器中使用构造函数注入时,注入工作正常.
public class MyController : ApiController
{
private readonly PricingService _pricingService;
public MyController (PricingService pricingService)
{
_pricingService = pricingService;
}
}
任何帮助将不胜感激.
解决方法:
感谢Steve的评论,我得以解决此问题.
缺少的部分是在MVC基础结构中注册NinjectDependencyResolver:
private static void RegisterServices(IKernel kernel)
{
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
...
}
这样做之后,DependencyResolver.Current实例更改为NinjectDependencyResolver.
不幸的是,这还没有结束.尝试调用DependencyResolver.Current.GetService< PricingService>()时,我遇到了System.EntryPointNotFoundException.但这在this discussion的帮助下很容易解决.
内容总结
以上是互联网集市为您收集整理的c#-Ninject无法通过Application_Start中的DependencyResolver解析全部内容,希望文章能够帮你解决c#-Ninject无法通过Application_Start中的DependencyResolver解析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。