asp.net-mvc-3 – MVC3,Ninject和Ninject.MVC3问题

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – MVC3,Ninject和Ninject.MVC3问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚开始使用Ninject和MVC3,所以这是我的问题:
– 我从Nuget安装了Ninject 2.2.1.4和Ninject.MVC3 2.2.2.0
– 在我的WebUI(MVC3项目)中:

的Global.asax.cs

public class MvcApplication : NinjectHttpApplication
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",// Route name
            "{controller}/{action}/{id}",// URL with parameters
            new { controller = "home",action = "index",id = UrlParameter.Optional } // Parameter defaults
        );

    }

    protected override void OnApplicationStarted()
    {
        base.OnApplicationStarted();

        AreaRegistration.RegisterAllAreas();
        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }

    protected override IKernel CreateKernel()
    {
        var kernel = new StandardKernel();
        kernel.Load(Assembly.GetExecutingAssembly());
        return kernel;
    }


}

>在我的域(类项目)中,我有我的LinQ to sql datacontext,我想从我的WebUI中的Web.Config加载带有连接字符串的上下文,所以我必须传递构造函数参数,我也有一些服务在我的域项目中

public class LotteryDataService
{
    LinQ.WebDataContext _context;

    public LotteryDataService(LinQ.WebDataContext context)
    {
        _context = context;
    }

    public IEnumerable<LinQ.LotteryData> Get()
    {
        return _context.LotteryDatas.Take(10);
    }
}

如何将datacontext与Ninject绑定到构造函数参数(这里是连接字符串)?

解决方法

这是传递构造函数参数的方法. Ninject将解析与指定的构造函数参数匹配的构造函数.
public class DataModule : NinjectModule
{
    public override void Load()
    {
        string connectionString = "...";
        Bind<WebDataContext>().ToSelf()
            .WithConstructorArgument("connection",connectionString);
    }
}

.WithConstructorArgument()的第一个参数应该是构造函数参数的名称.这是基类中的fileOrServerOrConnection,但是派生类中的连接.

猜你在找的asp.Net相关文章