2

我是 MVC 的新手,我遇到了一个问题。我设法找到的所有示例都指的是简单的控制器,而不是 API 控制器。也许任何人都有一个工作代码示例,说明如何在 Application_Start() 上将依赖项注册到 Unity 并调整代码,以便在创建我的 apicontroller 类后,将正确的依赖项传递给它。假设这是我的控制器的定义:

public class BookController : ApiController
{
    private IBookService bookSerivce;

    public BookController (IBookService bookSerivce)
    {
        this.bookSerivce= bookSerivce;
    }
}

我希望通过以下方式统一注册它:

UnityContainer container = new UnityContainer();

// Register services
container.RegisterType<IBookService , BookService>();

// Register controllers
container.RegisterType<IHttpController, BookController>("Books");

现在,为了让 MVC 使用统一解决依赖关系,开始创建此控制器的实例并将依赖关系传递给它,我需要做什么?

我正在使用 MVC 4。任何想法将不胜感激。

干杯

4

2 回答 2

6

Mark Seemann 有两篇关于使用 WebAPI 进行依赖注入的文章。

使用 ASP.NET Web API 进行依赖注入和生命周期管理

ASP.NET Web API 中的依赖注入与 Castle Windsor

如果您将 Castle Windsor 替换为 Unity,则示例应该可以正常工作。

于 2012-11-05T06:22:17.853 回答
1

看起来您正在使用 WebAPI。查看这篇关于 ASP.NET WebAPI 中的 Unity 集成的文章:

介绍 Unity.WebAPI NuGet 包

于 2012-11-05T06:13:53.457 回答