Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在区域注册中使用ninject_Asp.net Mvc_Ninject_Areas - Fatal编程技术网

Asp.net mvc 如何在区域注册中使用ninject

Asp.net mvc 如何在区域注册中使用ninject,asp.net-mvc,ninject,areas,Asp.net Mvc,Ninject,Areas,我在mvc3项目中有一个“帐户”区域 它有一个AreaRegistration类,用于限制仅注册用户的可见性,如下所示: public class AccountAreaRegistration : AreaRegistration { public override string AreaName { get { return "Account"; } } public override

我在mvc3项目中有一个“帐户”区域

它有一个AreaRegistration类,用于限制仅注册用户的可见性,如下所示:

public class AccountAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "Account";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Account_default",
            "{account}/{controller}/{action}/{id}",
            new {controller = "Dashboard", action = "Index", id = UrlParameter.Optional },
            new {account = new MustBeRegisteredAccount(DEPENDENCIES)},
            new string[] {"Continuum.Web.Areas.Account.Controllers"}
        );
    }
}

那么,我如何设置ninject来解析依赖项/创建MustBeRegisteredAccount对象呢?

我首先尝试使用构造函数注入(即,查看MVC是否在内部使用已注册的
依赖项解析程序
来创建
区域注册
类的实例(我还没有找到任何关于这是否有效的方法,但有一种很快的方法可以从经验上找到答案:D)

如果做不到这一点,使用
DependencyResolver.GetService()
是MVC领域的解决方法(Ninject.MVC3扩展故意不公开全局内核实例,因为这只会鼓励无偿使用)


请参见

DependencyResolver不用于创建AreaRegistration的实例。