dependency-injection - MVC 4 和 Unity,向 WebAPI Controller 注入(inject)依赖项

标签 dependency-injection controller asp.net-mvc-4 asp.net-web-api unity-container

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

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 使用 unity 来解决依赖关系,开始创建该 Controller 的实例并将依赖关系传递给它?

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

干杯

最佳答案

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

Dependency Injection and Lifetime Management with ASP.NET Web API

Dependency Injection in ASP.NET Web API with Castle Windsor

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

关于dependency-injection - MVC 4 和 Unity,向 WebAPI Controller 注入(inject)依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13223166/

相关文章:

c++ - 对齐指针以具有功能 -> 运算符? C++

oop - 依赖注入(inject) - 这两个代码有什么区别?

angular - 使用类与使用现有

configuration - 在 RetroPie 中配置 N64 Controller

build - 在其他虚拟机 TFS 2010 上使用代理

c# - 将 JSON 和输入文件传回 Controller MVC 4

c# - 没有 IoC 或依赖注入(inject)的模拟

java - spring mvc-在调用 Controller 函数之前调用函数

Ajax.BeginForm 不在 dom 内创建表单标签

javascript - 表单提交后 ASP.net MVC 成功警报