gpt4 book ai didi

c# - 将 Ninject 与 ASP.NET MVC 和服务层结合使用

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:08 26 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 项目,它使用服务项目通过一组接口(interface)(项目)到达存储库项目。

我有点困惑在哪里使用 Ninject。在我看来,我将我的 Ninject 包含在服务层中似乎是合乎逻辑的,因为这是我与接口(interface)交互的地方。

我的问题是如何实现?另外,其他人是如何实现的?

最佳答案

在您的服务项目中,您需要创建一个派生自 NinjectModule 的类并覆盖 Load 方法;此类的职责是向 Ninject 注册您的依赖项。

public class ServiceModule : NinjectModule
{
public override void Load() {
Bind<IAccountService>().To<AccountService>();
}
}

然后,您需要创建一个继承自 NinjectHttpApplication 的 Application 类。覆盖 CreateKernel 方法并从您的服务项目中注册 NinjectModule(以及您可能需要注册的任何其他方法)。

public class MvcApplication : NinjectHttpApplication
{
protected override void OnApplicationStarted() {
RegisterRoutes(RouteTable.Routes);
RegisterAllControllersIn(Assembly.GetExecutingAssembly());
}

protected override IKernel CreateKernel() {
var modules = new INinjectModule[] {
new MyProject.Services.ServiceModule(),
new MyProject.Data.DataModule()
};

var kernel = new StandardKernel(modules);

return kernel;
}

关于c# - 将 Ninject 与 ASP.NET MVC 和服务层结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3257534/

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