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()
这只会注册您的服务类型,而不是所有已实现的接口或继承的类型。
在 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()
这只会注册您的服务类型,而不是所有已实现的接口或继承的类型。