簡體   English   中英

aPress的pro asp.net mvc 3書中的一些錯誤

[英]few bugs in pro asp.net mvc 3 book from aPress

我正在閱讀本書,無論嘗試什么,都無法使該示例正常運行,因為它使用了ninject,我什至從未聽說過,如果有人可以幫助我使其運行,我將不勝感激

本書的作者說,我應該在項目中添加新的文件夾(基礎結構)並添加新的.cs文件(NinjectControllerFactory),然后向其中添加以下代碼

private IKernel ninjectKernel;
public NinjectControllerFactory()
{
    ninjectKernel = new StandardKernel();
    AddBindings();
}

//problem with override
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
    return controllerType == null
        ? null
        : (IController) ninjectKernel.Get(controllerType);
}

如果我嘗試調試它,則會遇到問題,因為VS表示無法覆蓋該方法。 我只是刪除了override並嘗試再次運行它,但再次出現以下代碼行問題:

ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());

我必須將其添加到global.aspx > Application_Start()方法中,但是我遇到了一個問題,因為VS表示必須將其IControllerFactoryIControllerFactory所以我將其修改為

ControllerBuilder.Current
    .SetControllerFactory(new NinjectControllerFactory() as IControllerFactory);

但是現在我在那條線上得到了ArgumentNullException

有人知道我該如何解決這個問題?

你要么想

  1. System.Web.Mvc.DefaultControllerFactory繼承您的類,其中包括要重寫的GetControllerInstance
  2. 弄個ninject.web.mvc已經實現了NinjectControllerFactory
    (盡管看起來他們對MVC3使用了不同的機制?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM