gpt4 book ai didi

asp.net - 使用ninject时出现异常

转载 作者:行者123 更新时间:2023-12-02 16:27:43 27 4
gpt4 key购买 nike

我一直在尝试使用 Asp.Net Pro MVC 2,第 3 章中的示例,其中作者使用 ninjet 进行依赖项注入(inject),由于他使用 c#,所以我已将代码转换为 vb.net,添加了引用,但是当我尝试运行代码但出现异常

Return DirectCast(kernel.Get(controllerType), IController)

异常(exception)是 System.InvalidProgramException,但是当我将作者代码与 c# 一起使用时,它工作正常并成功通过该行,

谁能帮帮我

这是异常详细信息:

[InvalidProgramException: Common Language Runtime detected an invalid program.]
System.Runtime.CompilerServices.RuntimeHelpers._CompileMethod(IRuntimeMethodInfo method) +0
System.Reflection.Emit.DynamicMethod.CreateDelegate(Type delegateType) +9574057
Ninject.Injection.DynamicMethodInjectorFactory.Create(ConstructorInfo constructor) +504
Ninject.Planning.Strategies.ConstructorReflectionStrategy.Execute(IPlan plan) +213
Ninject.Planning.<>c__DisplayClass1.<GetPlan>b__0(IPlanningStrategy s) +40
Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable`1 series, Action`1 action) +200
Ninject.Planning.Planner.GetPlan(Type type) +246
Ninject.Activation.Providers.StandardProvider.Create(IContext context) +223
Ninject.Activation.Context.Resolve() +395
Ninject.KernelBase.<Resolve>b__7(IContext context) +31
System.Linq.<>c__DisplayClass12`3.<CombineSelectors>b__11(TSource x) +32
System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +151
System.Linq.Enumerable.Single(IEnumerable`1 source) +196
Ninject.ResolutionExtensions.Get(IResolutionRoot root, Type service, IParameter[] parameters) +62
SportsStore.WebUI.NinjectControllerFactory.GetControllerInstance(RequestContext context, Type controllerType) in D:\Ahmad\VB Projects\SportsStore\SportsStore.WebUI\Infrastructure\NinjectControllerFactory.vb:14
System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +204
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +193
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +160
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +80
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +45
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8862676
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

最佳答案

VB 没有理由表现得不同。您确定使用相同的代码吗?或者尝试使用基于反射的注入(inject):

new StandardKernel(new NinjectSettings { UseReflectionBasedInjection = true })

关于asp.net - 使用ninject时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5772860/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com