我是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使用unity来解析依赖关系,开始创建这个控制器的实例并将依赖关系传递给它?
我正在使用MVC 4.我们将不胜感激。
干杯
答案 0 :(得分:6)
Mark Seemann在WebAPI上有两篇关于依赖注入的帖子。
Dependency Injection and Lifetime Management with ASP.NET Web API
Dependency Injection in ASP.NET Web API with Castle Windsor
如果用Unity替换Castle Windsor,样本应该可以正常工作。
答案 1 :(得分:1)
看起来您正在使用WebAPI。查看有关ASP.NET WebAPI中Unity集成的这篇文章: