2011-04-24 7 views
4

使用して、著者は依存性の注入のためのninjetを使用しています第3章は、私がvb.netにコードを変換した、追加参照が、その後、私は例外私はMVC 2 ProのAsp.Netの例を使用しようとしているninject

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

上の例外を取得コードを実行しようとした場合は例外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 

答えて

2

VBが異なる動作をする理由はありません。同じコードを使用してもよろしいですか?代わりに使用しようとリフレクションベースの注入:

new StandardKernel(new NinjectSettings { UseReflectionBasedInjection = true }) 
関連する問題