Asp.net mvc 4 将委托注入服务时,SimpleInjector正在抛出ThrowMissingInstanceProducerException
我正在将ASP.Net应用程序从MC3转换为MVC4。我有旧MVC3时代的Simpleinjector代码,如下所示Asp.net mvc 4 将委托注入服务时,SimpleInjector正在抛出ThrowMissingInstanceProducerException,asp.net-mvc-4,simple-injector,Asp.net Mvc 4,Simple Injector,我正在将ASP.Net应用程序从MC3转换为MVC4。我有旧MVC3时代的Simpleinjector代码,如下所示 WebContainer.Instance.Container.GetInstance<Func<HttpRequestBase>>(); container.RegisterPerWebRequest<Func<HttpRequestBase>>(() => () => new HttpRequestWrapper
WebContainer.Instance.Container.GetInstance<Func<HttpRequestBase>>();
container.RegisterPerWebRequest<Func<HttpRequestBase>>(() => () => new HttpRequestWrapper(HttpContext.Current.Request));
WebContainer的代码如下所示
this.Container = new Container();
SimpleInjectorWebInitializer.Initialize();
this.Container.RegisterPackages(GetAssemblies());
this.Container.RegisterMvcControllers(Assembly.GetExecutingAssembly());
this.Container.RegisterMvcIntegratedFilterProvider();
this.RegisterGlobalFilters();
//this.Container.Verify();
DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(this.Container));
//this.VerifyPages();
本职能的注册如下所示
WebContainer.Instance.Container.GetInstance<Func<HttpRequestBase>>();
container.RegisterPerWebRequest<Func<HttpRequestBase>>(() => () => new HttpRequestWrapper(HttpContext.Current.Request));
container.registerWebRequest(()=>()=>新的HttpRequestWrapper(HttpContext.Current.Request));
您为什么希望这样做有效?您能显示您在Func
上的注册信息吗?简单注入器的集成包没有为您注册此Func
。Steven,感谢您的回复。注册如下所示:container.registerWebRequest(()=>()=>新的HttpRequestWrapper(HttpContext.Current.Request));尝试升级到最新版本(v3.1)。感谢您的评论。由于公司政策原因,我无法升级到4.5版本,请确认此软件包与.Net framework 4兼容。我可以确认。Simple Injector v3与.NET 4.0兼容。