Windsor 没有安装依赖项

Windsor not installing dependencies

在 Asp.Net 中使用依赖注入和 IoC 时,我是一个新手。我的应用程序分层到同一个项目的几个目录中,因为这是一个小项目。

我有一些服务想注入到我的控制器中。它们都继承自一个空接口:

服务的安装程序如下:

以及 GlobalAsax 文件:

我已经调试并注意到我的 ServicesInstaller class 确实被调用了,但是,依赖项没有安装,因为在我的控制器中,我的一项服务的实例为空。

有人知道我应该如何正确设置它吗?

我希望能够像这样在我的控制器中使用我的依赖项:

public class TestController : Controller
{

    private readonly IPDFService _pdfService;

    [HttpGet]
    public ActionResult Index()
    {
        //PDFService service = new PDFService();
        string pdfFile = _pdfService.GenerateAgendaPdfFromURL("http://google.com", 1);

        return View((object)pdfFile);
    }
}

谢谢,

所述,您必须向接受服务的控制器添加一个构造函数。或者您可以将您的成员 private readonly IPDFService _pdfService; 更改为 public 属性。 Windsor 也会注入属性。

此外,您应该像这样将 .WithServiceSelf() 添加到您的服务注册中:

Classes.FromThisAssembly().BasedOn<IService>().WithServiceSelf()

这只会注册您的服务类型,而不是所有已实现的接口或继承的类型。