gpt4 book ai didi

asp.net-mvc-4 - 对 MVC 和 WebAPI 使用 ninject dependentecyResolver

转载 作者:行者123 更新时间:2023-12-02 00:11:59 26 4
gpt4 key购买 nike

我已经创建了 MVC 4 Web 应用程序,并决定在此应用程序中使用 Web api。我正在为 MVC Web 应用程序使用 ninject 依赖解析器。现在我想将这个 ninject 依赖解析器用于 Web api。但这里提出的问题 mvc IDependencyResolver 命名空间是: using System.Web.Mvc并且 Web api IDependencyResolver 正在使用 System.Web.Http.Dependencies

那么我该如何解决这个问题呢?

最后我想要这样的东西:

// Use the container and the NinjectDependencyResolver as
// application's resolver
var resolver = new NinjectDependencyResolver(container);

//Register Resolver for MVC
DependencyResolver.SetResolver(resolver);

//Register Resolver for Web Api
GlobalConfiguration.Configuration.DependencyResolver = resolver;

最佳答案

有一种方法可以在 MVC 和 ASP.NET Web API 之间共享同一个容器。您只需要实现这两个接口(interface)即可。

public class NinjectDependencyResolver : NinjectDependencyScope, IDependencyResolver, System.Web.Mvc.IDependencyResolver
{
private readonly IKernel kernel;

public NinjectDependencyResolver(IKernel kernel)
: base(kernel)
{
this.kernel = kernel;
}

public IDependencyScope BeginScope()
{
return new NinjectDependencyScope(this.kernel.BeginBlock());
}
}

查看这篇文章以获取解决方案: Simple Way to share Dependency Resolvers between MVC and Web API

关于asp.net-mvc-4 - 对 MVC 和 WebAPI 使用 ninject dependentecyResolver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21158274/

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